Introduction
This is the wiki used to document the high-level views about the goSDN SDN controller. goSDN is a SDN controller initially developed as part of research and development cooperation between Deutsche Telekom and the da/net research group.
Why yet another SDN controller?
There is already a number of existing SDN-controllers, such as, but not limited to, ONOS, Opendaylight, Ryu and Floodlight.
While each of these has their own merrits, e.g., Ryu is a development framework that one can program in order to make use of certain southbound protocols, while ONOS is aiming at a general purpose all-you-can-do controller. However, we do not see that any of the currently available SDN controllers fulfills our needs (see below), but have their own pros and cons. ONOS and Opendaylight are intended to be quite versatile controllers, but lack a comprehensive documentation and are to some degree overly complex their implementation. Ryu and Floodlight on the other hand are less complex in their implementation but do focus completely on Openflow, such as Floodlight, or focus mainly on Openflow while supporting other Southbound-Interfaces, such as Ryu.
For our purpose we need a cleanly designed and documented SDN controller, as we aim at multiple intended uses, as we do not see that the currently available SDN controllers fulfill our needs.
The intended use cases:
- Multi-domain controller for optical wide-area networks – this includes hierarchically stacked SDN controllers
- controller for data center networks
- controller for mobile networks
- controller for teaching and learning topics in networking in general and software defined networks
The high-level requirements:
- clearly structured source code with no or limited SDN development legacy
- focus on KISS: Keep It Simple Stupid
- cope with the fallout of KISS
- document the architecture, design decisions, the source code, and the external and internals workings of goSDN
- support of multiple Southbound-Interfaces (SBI) in parallel
Overview of this wiki
tbd