two/internal/netif/bridge.go
GnomeZworc 9420a9f7b4
f-14: code: add create bridge code #14
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-01-13 10:53:43 +01:00

38 lines
599 B
Go

package netif
import (
"fmt"
"os"
"github.com/vishvananda/netlink"
)
func setBridgeSTP(bridge string, enable bool) error {
path := fmt.Sprintf("/sys/class/net/%s/bridge/stp_state", bridge)
val := "0"
if enable {
val = "1"
}
return os.WriteFile(path, []byte(val), 0644)
}
func CreateBridge(name string, mtu int, stp bool) error {
br := &netlink.Bridge{
LinkAttrs: netlink.LinkAttrs{
Name: name,
MTU: mtu,
},
}
if err := netlink.LinkAdd(br); err != nil {
return err
}
if err := netlink.LinkSetUp(br); err != nil {
return err
}
return setBridgeSTP(name, stp)
}