- Notifications
You must be signed in to change notification settings - Fork61
A Go library for OVN Northbound/Southbound DB access using native OVSDB protocol
License
eBay/go-ovn
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A Go library for OVN DB access using native OVSDB protocol.It is based on theOVSDB Library, but used own forkhttps://github.com/ebay/libovsdb.git with patches.
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.
OVSDB is a protocol for managing the configuration of OVS.It's defined inRFC 7047.
There are projects accessing OVN DB based on the ovn-nbctl/sbctl CLI, which has someproblems. Here are the majors ones and how native OVSDB protocol based approachsolves 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. Thislibrary 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 needto figure out first what's the current state in OVN, which requires either maintaining a clientcache or executing a "list" command everytime. This library maintains an internal cache and ensuresit 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 outputto Go internal data types, while it is not necessary with this library since OVSDB JSON RPC takescare of it.
About
A Go library for OVN Northbound/Southbound DB access using native OVSDB protocol