Skip to content
Snippets Groups Projects
01-introduction.md 3.18 KiB
Newer Older
  • Learn to ignore specific revisions
  • Manuel Kieweg's avatar
    Manuel Kieweg committed
    # Introduction
    
    Data networks consists out of a variety of different network elements, link types, end hosts, services and requirements of such services. Further data networks consists not only of a single plane, but have different (logical) networking planes that have different tasks within any data network, i.e., the control plane, data plane and the network management plane. Keeping track of the different elements, links, hosts, services, their interactions, their runtime behavior on the 3 networking planes is a non-trivial tasks that is usually subsumed under the very broad term of network operations. 
    
    There are different approaches for network operations that are not only divided by their logical distinction but also how an implementer, typically network equipment vendor, is implementing the network elements and the particular operations. 
    
    We outline two basic approaches to network operation:
    * fully intergrated network operations of all networking planes, i.e., usually called the traditional approach.
    * separation of control- and data planes, i.e., usually called the Software Defined Networking (SDN) approch, though there have been implementations of this concept earlier than SDN with other names, e.g., Forwarding and Control Separation (ForCeS)
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    
    ## Motivation
    
    ## Overarching Project Goals
    
    * Keep It Simple, Stupid (KISS)
    
    * Reuse existing technologies bits wherever possible if those are stable, i.e., documented, maintained etc,  on a long time scale
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    * Integrate state-of-the-art technologies and methodologies
    * Automate almost everything right from the beginning
    
    * Document, Document, Document
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    * be an excellent citizen: test, test, test
    
    * no hacks! 
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    
    Some unsorted thoughts the be ordered yet:
    
    * Storage of information in some external database, make use of database features, e.g., for state replication
    * eye towards web-technologies/features, such as externalisation of state
    * one API to "talk"  administratively to the network controller
    * core of controller should be kept simple/lean, i.e., just the basic primitives
    * core should be extended by modules to add functionality beyond basics
    * modules should be loaded (or unloaded) during runtime of the controller core
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    
    
    ## Use Cases to be considered
    
    The development of a general purpose SDN controller is not the primary goal at this early stage of the project.
    Instead there are two use cases to be considered in the implemenation works that are currently ongoing:
    * Primary: optical domain SDN-controller for the CoCSN project
    * Secondary: SDN-controller for our local labs to manage an Ethernet-based lab environment
    
    
    ## Structure of this Memo
    
    This memo starts with this introduction that sets the stage for the theoretical underpinings of the SDN-controller
    and the acutal implementation (and the various choice for this). Chapter 2 discusses the related work and chapter 3
    outlines the theoretical foundations related to the control of networks and their relation to SDN. Chapter 4 uses
    the output of Chapter 3 to define the conceptual design of the goSDN controller and some discussions about the pro
    and cons of conceptual design. Chapter 5 describes the actual design of the current goSDN implementation and is 
    meant to be a compendium for the source code.