Skip to content
Snippets Groups Projects
user avatar
Neil-Jocelyn Schark authored
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->

## Related Issue
<!--- This project only accepts merge requests related to open issues -->
<!--- If suggesting a new feature or change, please discuss it in an issue first -->
<!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!--- Please link to the issue here: -->

## Motivation and Context
<!--- Why is this change required? What problem does it solve? -->

## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->

## Screenshots (if appropriate):

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.
10622d4d
History
Code owners
Assign users and groups as approvers for specific file changes. Learn more.

goSDN coverage report pipeline status

goSDN is a prototypical approach to build a model driven multi-vendor SDN controller.

Table of Contents

Overview

goSDN is also an application that will allow you to manage your multi-vendor network using one unified controller.

goSDN provides:

  • Model driven device representation
  • Native multi vendor support
  • Multi controller environments

Concepts

The goSDN core - also called nucleus - is a lightweight library that manages principal network domains and provides southbound interface operations for orchestrated networking devices.

Principal Networking Domain (PND)

The PND is the single source of truth within a network. Its state is held and maintained by the controller. Any configuration of an OND has to be applied by the PND.

Orchestrated Networking Device (OND)

Any device directly configured by goSDN

Installing

You can install the latest release of goSDN locally using the go get command. Since the repository and some dependencies are not publicly available you have to modify your git config first:

> git config --global url."git@code.fbi.h-da.de:".insteadOf "https://code.fbi.h-da.de"
> go env -w GOPRIVATE=code.fbi.h-da.de/cocsn/*
> go get code.fbi.h-da.de/danet/gosdn/cmd/gosdn

To install the development version you need to clone the repo and use go install to build and install the binary:

# If you haven't cloned the repo yet
> git config --global url."git@code.fbi.h-da.de:".insteadOf "https://code.fbi.h-da.de"
> go env -w GOPRIVATE=code.fbi.h-da.de/cocsn/*
> cd $GOPATH/src
> git clone git@code.fbi.h-da.de:cocsn/gosdn.git

# checkout the develop branch (or any other branch)
> cd $GOPATH/src/code.fbi.h-da.de/danet/gosdn
> git checkout develop
> go install ./cmd/gosdn

Now you can start goSDN locally using the gosdn command or use the CLI to interact with a running goSDN instance.

Getting Started

k8s

We have an instance of goSDN for each the latest master and current develop branch running on the department's k8s cluster. These endpoints can be accessed using the gosdn cli command. If anything breaks please file an issue.

Using the CLI

The CLI for goSDN is provided as the separate gosdnc application. Please refer to the README there.

CI Status

Master Develop
coverage report coverage report
pipeline status pipeline status