Bachelor Thesis GPU Support for Software Defined Networking

Bachelor Thesis GPU Support for Software Defined Networking

Saarland University Faculty of Natural Sciences and Technology I Department of Computer Science R S V E I T I A N S U S S A I R S A V I E N Bachelor Thesis GPU Support for Software Defined Networking Controllers submitted by Tobias Theobald on June 2nd, 2014 Supervisor Prof. Dr.-Ing. Thorsten Herfet Advisor Dipl.-Ing. Michael Karl Reviewers Prof. Dr.-Ing. Thorsten Herfet Prof. Dr.-Ing. Philipp Slusallek Eidesstattliche Erklärung Ich erkläre hiermit an Eides Statt, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. Statement in Lieu of an Oath I hereby confirm that I have written this thesis on my own and that I have not used any other media or materials than the ones referred to in this thesis Einverständniserklärung Ich bin damit einverstanden, dass meine (bestandene) Arbeit in beiden Versionen in die Bibliothek der Informatik aufgenommen und damit veröffentlicht wird. Declaration of Consent I agree to make both versions of my thesis (with a passing grade) accessible to the public by having them added to the library of the Computer Science Department. Saarbrücken,______________________ _____________________________ (Datum/Date) (Unterschrift/Signature) Bachelor Thesis UNIVERSITÄT DES SAARLANDES Lehrstuhl Bachelor Thesis für Tobias Theobald Nachrichtentechnik Mat. Nr.: 2526256 FR Informatik GPU Support for Software Defined Networking Controllers Prof. Dr. Th. Herfet Modern communication networks become a highly critical part of global infrastruc- Universität des Saarlandes Campus Saarbrücken ture. Billions of devices are connected over a set of heterogeneous and complex C6 3, 10. OG network segments, carrying millions of gigabytes across this global backbone. Ac- 66123 Saarbrücken cording to forecasts, the predominant portion of this traffic has its origin in multime- dia applications that exchange audio visual content. This type of information has Telefon (0681) 302-6541 completely different requirements to the communication infrastructure than the initial- Telefax (0681) 302-6542 ly used applications for pure text exchange in the beginnings of the Internet. www.nt.uni-saarland.de — Networks continuously increase in size and complexity and adjust to the constantly arising requirements of new applications. The advent of Software Defined Network- ing (SDN) provides a new concept of centrally managed network logic and separated networking planes for both, controlling and pure forwarding. This eases the devel- opment of new and more effective network technologies as required by multimedia applications. Routing of packets from one client to another thus unveils as a highly complex com- putational task since big networks contains a large number of possible connection paths between any two source-sink pairs. With SDNs, the task of finding appropriat- ed paths in the network is completely left to the central controlling instance. Thus, it is critical to quickly perform management and routing actions. A possible approach is to massively parallelize operations. A suitable way is to transfer complex and expen- sive calculation on highly specialized hardware, such as GPUs. This thesis focuses on the development of a controller instance for Software Defined Networks based on OpenCL technology for highly parallelized computing. In particu- lar, the thesis includes the following tasks: • Discussion of benefits and limitations of SDN components related to GPU processing. • Implementation of GPU support for SDN controller. • Performance evaluation of GPU- and CPU-based controller instances. – Advisor: Supervisor : Dipl.-Ing. Michael Karl Prof. Dr.-Ing. Thorsten Herfet Abstract With the rise of network usage and Software Defined Networking (SDN), controllers that respond quickly become increasingly important. However, with increasing network size, these controllers need to process an ever growing amount of data. But as more and more powerful GPUs are cheaply available and usable for massively parallel computations, some problems of SDN may be suitable for GPU acceleration. This paper shows the basic concepts of such controllers and a concrete implementation in details. Afterwards, it evaluates the performance and applications in practice. Contents 1 Introduction 9 1.1 Related Work . 10 1.2 Structure . 11 2 Background 13 2.1 Software Defined Networking . 13 2.1.1 OpenFlow . 15 2.2 Massively parallel computing on GPUs . 17 2.2.1 Technologies . 18 2.2.2 Design principles of GPU programming . 21 3 Components of SDN controllers 25 3.1 Network Topology Monitoring . 25 3.2 Datastore . 26 3.3 Client Discovery . 26 3.4 Unicast Routing . 27 3.5 Multicast and Broadcast Routing . 27 3.6 Upper level APIs . 28 3.7 Routing . 28 3.8 ARP and rARP Responder, DHCP and DNS server . 28 3.9 Batch processing of packets . 29 4 Bonfire - A GPU accelerated SDN controller 31 4.1 Overview . 31 4.2 Beacon Controller Framework . 32 4.3 Network Topology and Client Discovery Modules . 33 4.4 Datastore Module . 34 4.4.1 Description of GPU-based filtering . 36 4.4.2 Description of GPU-based Singleton Search by Key Element . 39 4.5 Routing Module . 39 4.5.1 Description of GPU-based Shortest Path Search . 40 7 8 Contents 4.6 Compute Device Manager . 46 4.7 Example: Incoming Packet for Unicast Routing . 46 4.8 Challenges . 49 4.8.1 Controller Frameworks . 49 4.8.2 GPU Support Library . 49 4.8.3 Defective Dijkstra Algorithm . 50 5 Evaluation 53 5.1 Testbed . 53 5.2 Single-Source Shortest Path Component . 54 5.3 Datastore Component . 59 5.4 Controller Performance . 61 6 Conclusion 63 Bibliography 65 Chapter 1 Introduction Computer networks have become a very large part of nearly every company. This is mainly due to the companies having more and more tasks automated by machines, that all have to be controlled somehow, get information from somewhere or report to a certain authority within or even outside the company. However, this dependency on network connections means, that hardly anything works when network fails. Of course, if the whole network fails, there is not much that can be done, but if only parts of the hardware fails, the network ought to be able to detect this problem and work around it. In order for this to happen, the network must be aware of its structure [13] and be able to detect a failing component, ideally before it is too late. Then, all traffic that was routed via the failed component has to be rerouted through different components, ideally within a very short time. Monitoring the network equipment and making all components in the network redundant is the key to this. Another important task in this context is the configuration of the network equipment. While certain manufacturers have tools to do exactly that [32], it is hard to find a standard that more than one manufacturer implements. This is, however, important, as networks seldom use equipment from only one supplier for redundancy reasons. There are protocols that try to fill this gap, e.g. the Simple Network Management Protocol (SNMP) [14], which can be used to set most configuration options in switches, as well as monitor the topology. Unfortunately though, it lacks the flexibility that another currently up-and- coming technique called Software Defined Networking, offers. Software Defined Networking(SDN) offers a high degree of freedom with respect to the configurability of the networking hardware. It enables network administrators to change the way, that network packets travel. It is even possible to modify the header of a packet or drop it entirely and has the ability to turn any SDN switch into a firewall or a router. Of course, the exact capabilities, depend on the specific API that is used to communicate with the switches. 9 10 Chapter 1.1: Related Work One of the most prominent APIs for Software Defined Networking, is OpenFlow [33]. It allows the administrator to concentrate the control over the network on to a single, centralized server called controller, a central server that is sent every unknown packet and which can then dynamically decide where it goes. As every switch in such a network is connected to the central authority, it is able to detect switch failures and other topology changes at once and can act accordingly. Another feature is, that the controller has global knowledge over its network, which it can use to make better decisions when routing packets through the network. Unfortunately though, these controllers can easily be overloaded when dealing with a large network or a great number of packets, because deciding the routes that these take through network is computationally expensive. With that challenge, an efficient way to load off this work has to be found. One candidate for this is massively parallel computing on GPUs. This technique allows programs to take advantage over the up to several thousand compute cores that are used on regular consumer level graphics cards. Another possibility to offload this work is using other controllers, which would also eliminate the single point of failure that having only one controller implies, but this work focuses on the former solution. More on the latter solution may be found in the section 1.1. Graphics cards are specialized hardware that was, up to a certain point in time, only used in graphics environments, but the last years have shown a sharp increase in use of this hardware for high-performance computing. They have several gigabytes of dedicated memory, that the graphics processing unit can use. It has a large number of cores that can act in parallel and are specialized on executing the same instructions on every core. This leads to the necessity to design the algorithms used on GPUs specially for them. With this large amount of computing power at hand, this thesis takes some of the load from the controller and puts it off to the graphics cards.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    69 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us