Giter Club home page Giter Club logo

goovn's Introduction

GO OVN License GoDoc Travis CI Go Report Card

A Go library for OVN DB access using native OVSDB protocol. It is based on the OVSDB Library, but used own fork https://github.com/ebay/libovsdb.git with patches.

What is OVN?

OVN (Open Virtual Network) is a SDN solution built on top of OVS (Open vSwitch). The interface of OVN is its northbound 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 the 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 conversion 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.

goovn's People

Contributors

brianhaslam avatar fanux avatar hzhou8 avatar jackyczj avatar lebauce avatar mikeshatch avatar nikhildl12 avatar noah8713 avatar softwarejl avatar sudhi-vm avatar vtolstov avatar

Watchers

 avatar  avatar

Forkers

manshuxu

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.