From 9420a9f7b4e881fbeeda3769592391f4ab49dcfc Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Tue, 13 Jan 2026 10:53:43 +0100 Subject: [PATCH] f-14: code: add create bridge code #14 Signed-off-by: GnomeZworc --- internal/netif/bridge.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 internal/netif/bridge.go diff --git a/internal/netif/bridge.go b/internal/netif/bridge.go new file mode 100644 index 0000000..d6dea70 --- /dev/null +++ b/internal/netif/bridge.go @@ -0,0 +1,38 @@ +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) +}