f-14: code: add create bridge code #14

Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
This commit is contained in:
GnomeZworc 2026-01-13 10:53:43 +01:00
commit 9420a9f7b4
Signed by: nicolas.boufideline
GPG key ID: 4406BBBF8845D632

38
internal/netif/bridge.go Normal file
View file

@ -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)
}