Skip to content

Commit

Permalink
Merge pull request spidernet-io#3088 from ty-dc/fix/ifacer
Browse files Browse the repository at this point in the history
fix: the parent interface is down, set it to up before creating the vlan sub-interface
  • Loading branch information
Icarus9913 committed Jan 15, 2024
2 parents d4c7119 + 7accb36 commit d990b82
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions cmd/ifacer/cmd/cmd_add.go
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,19 @@ func createBondDevice(conf *Ifacer) (*netlink.Bond, error) {

func createVlanDevice(conf *Ifacer) error {
var err error
// If the parent interface is down, we set it to up.
var parentLink netlink.Link
parentLink, err = netlink.LinkByName(conf.Interfaces[0])
if err != nil {
return fmt.Errorf("failed to LinkByName %s: %w", conf.Interfaces[0], err)
}

if parentLink.Attrs().Flags != net.FlagUp {
if err = netlink.LinkSetUp(parentLink); err != nil {
return fmt.Errorf("failed to set %s up: %v", parentLink.Attrs().Name, err)
}
}

var vlanLink netlink.Link
vlanIfName := getVlanIfaceName(conf.Interfaces[0], conf.VlanID)
vlanLink, err = netlink.LinkByName(vlanIfName)
Expand All @@ -180,19 +193,6 @@ func createVlanDevice(conf *Ifacer) error {
return fmt.Errorf("failed to LinkByName %s: %v", vlanIfName, err)
}

// we create vlanif if it only not present
var parentLink netlink.Link
parentLink, err = netlink.LinkByName(conf.Interfaces[0])
if err != nil {
return fmt.Errorf("failed to LinkByName %s: %w", conf.Interfaces[0], err)
}

if parentLink.Attrs().Flags != net.FlagUp {
if err = netlink.LinkSetUp(parentLink); err != nil {
return fmt.Errorf("failed to set %s up: %v", parentLink.Attrs().Name, err)
}
}

// we only create if vlanIf not present
return networking.LinkAdd(&netlink.Vlan{
LinkAttrs: netlink.LinkAttrs{
Expand Down

0 comments on commit d990b82

Please sign in to comment.