two/internal/netif/tap_linux.go
GnomeZworc bf9f871fe1
f-25: netif: Add tap handle
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-04-26 16:29:53 +02:00

28 lines
558 B
Go

//go:build linux
package netif
import (
"fmt"
"git.g3e.fr/syonad/two/internal/netns"
"github.com/vishvananda/netlink"
)
func CreateTap(tapID int, bridgeName, vpcName string) error {
name := fmt.Sprintf("tap%d", tapID)
return netns.Call(vpcName, func() error {
tap := &netlink.Tuntap{
LinkAttrs: netlink.LinkAttrs{Name: name},
Mode: netlink.TUNTAP_MODE_TAP,
}
if err := netlink.LinkAdd(tap); err != nil {
return err
}
if err := BridgeSetMaster(name, bridgeName); err != nil {
return err
}
return LinkSetUp(name)
})
}