go-ovn

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2019 License: Apache-2.0

README

GO OVN

A Go library for OVN DB access using native OVSDB protocol. It is based on the OVSDB Library

What is OVN?

OVN (Open Virtual Network), is a SDN solution built on top of OVS (Open vSwitch). The interface of OVN is its north-bound DB which is an OVSDB database.

What is OVSDB?

OVSDB is a protocol for managing the configuration of OVS. It's defined in RFC 7047

Why native OVSDB protocol?

There are projects accessing OVN DB based on the ovn-nbctl CLI, which has some problems. Here are the majors ones and how native OVSDB protocol based approach solves them:

  • Performance problem. Every CLI command would trigger a separate OVSDB connection setup/teardown, initial OVSDB client cache population, etc., which would impact performance significantly. This library uses OVSDB protocol directly so that those overhead happens only once for all OVSDB operations.

  • Caching problem. When there is a change in desired state, which requires updates in OVN, we need to figure out first what's the current state in OVN, which requires either maintaining a client cache or executing a "list" command everytime. This library maintains an internal cache and ensures it is always up to date with the remote DB with the help of native OVSDB support.

  • String parsing problem. CLI based implementation needs extra convertion from the string output to Go internal data types, while it is not necessary with this library since OVSDB JSON RPC takes care of it.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL