digitalocean / go-openvswitch

Go packages which enable interacting with Open vSwitch and related tools. Apache 2.0 Licensed.
Other
295 stars 95 forks source link

feat: Adds option to use different datapath #126

Closed gruyaume closed 4 months ago

gruyaume commented 10 months ago

Description

OVS can operate entirely in user space, provided the datapath_type parameter when creating bridge. This PR adds support for the netdev datapath.

Usage

package main

import (
    "log"

    "github.com/digitalocean/go-openvswitch/ovs"
)

func main() {
    var ovsBridge string = "br0"

    ovsClient := ovs.New(
        ovs.Sudo(),
    )

    // sudo ovs-vsctl add-br br0
    if err := ovsClient.VSwitch.AddBridge(ovsBridge); err != nil {
        log.Fatalf("failed to add bridge: %v", err)
    }

    // sudo ovs-vsctl set bridge br0 datapath_type=netdev
    if err := ovsClient.VSwitch.Set.Bridge(ovsBridge, ovs.BridgeOptions{
        DataPathType: ovs.DataPathTypeNetDev,
    }); err != nil {
        log.Fatalf("failed to set bridge: %v", err)
    }

}

Reference

gruyaume commented 4 months ago

Closing because the change has not being reviewed in over 5 months