diff --git a/pkg/ip/link.go b/pkg/ip/link.go index 43b37390..6431bb41 100644 --- a/pkg/ip/link.go +++ b/pkg/ip/link.go @@ -90,6 +90,14 @@ func RandomVethName() (string, error) { return fmt.Sprintf("veth%x", entropy), nil } +func RenameLink(curName, newName string) error { + link, err := netlink.LinkByName(curName) + if err == nil { + err = netlink.LinkSetName(link, newName) + } + return err +} + // SetupVeth sets up a virtual ethernet link. // Should be in container netns, and will switch back to hostNS to set the host // veth end up. diff --git a/plugins/main/ipvlan/ipvlan.go b/plugins/main/ipvlan/ipvlan.go index c7316bbe..a0f47705 100644 --- a/plugins/main/ipvlan/ipvlan.go +++ b/plugins/main/ipvlan/ipvlan.go @@ -101,7 +101,7 @@ func createIpvlan(conf *NetConf, ifName string, netns ns.NetNS) error { } return netns.Do(func(_ ns.NetNS) error { - err := renameLink(tmpName, ifName) + err := ip.RenameLink(tmpName, ifName) if err != nil { return fmt.Errorf("failed to rename ipvlan to %q: %v", ifName, err) } @@ -170,15 +170,6 @@ func cmdDel(args *skel.CmdArgs) error { }) } -func renameLink(curName, newName string) error { - link, err := netlink.LinkByName(curName) - if err != nil { - return err - } - - return netlink.LinkSetName(link, newName) -} - func main() { skel.PluginMain(cmdAdd, cmdDel, version.Legacy) } diff --git a/plugins/main/macvlan/macvlan.go b/plugins/main/macvlan/macvlan.go index 8e2adeb7..52c48700 100644 --- a/plugins/main/macvlan/macvlan.go +++ b/plugins/main/macvlan/macvlan.go @@ -116,7 +116,7 @@ func createMacvlan(conf *NetConf, ifName string, netns ns.NetNS) error { return fmt.Errorf("failed to set proxy_arp on newly added interface %q: %v", tmpName, err) } - err := renameLink(tmpName, ifName) + err := ip.RenameLink(tmpName, ifName) if err != nil { _ = netlink.LinkDel(mv) return fmt.Errorf("failed to rename macvlan to %q: %v", ifName, err) @@ -190,15 +190,6 @@ func cmdDel(args *skel.CmdArgs) error { }) } -func renameLink(curName, newName string) error { - link, err := netlink.LinkByName(curName) - if err != nil { - return err - } - - return netlink.LinkSetName(link, newName) -} - func main() { skel.PluginMain(cmdAdd, cmdDel, version.Legacy) }