The GIT repo for the GoSDN design and implementation. GoSDN is intended to be controller for Software Defined Networks (SDN) that follows a modern software architecture design and a well-documented implementation in the go language.
# Overview
## Generate Code Stubs
`goSDN` is also an application that will allow you to manage your multi-vendor network using one unified controller.
YANG code stubs are located in the `yang-processor` directory. They are generated by calling `go generate` from their respective sub directories.
```
gosdn
+-- yang-processor
+-- ciena //Ciena code stubs
+-- tapi //TAPI code stubs
+-- yang //All YANG modules
`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 `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:
Now you can start `goSDN` locally using the `gosdn` command or [use the CLI](#using-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](https://code.fbi.h-da.de/cocsn/gosdn/-/issues/new).
## Using the CLI
The `gosdn cli` command allows you to interact with a running `goSDN` controller. Use `gosdn help cli` to print the available commands and flags.
## Example
## Documentation
# CI Status
The latest documentatiion generated on the master branch can be downloaded [here](https://code.fbi.h-da.de/cocsn/gosdn/-/jobs).