github.com/u-root/u-root@v7.0.1-0.20200915234505-ad7babab0a8e+incompatible/pkg/libinit/net_linux.go (about)

     1  // Copyright 2014-2019 the u-root Authors. All rights reserved
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package libinit
     6  
     7  import (
     8  	"fmt"
     9  
    10  	"github.com/u-root/u-root/pkg/ulog"
    11  	"github.com/vishvananda/netlink"
    12  )
    13  
    14  // NetInit is u-root network initialization.
    15  func linuxNetInit() {
    16  	if err := loopbackUp(); err != nil {
    17  		ulog.KernelLog.Printf("Failed to initialize loopback: %v", err)
    18  	}
    19  }
    20  
    21  func loopbackUp() error {
    22  	lo, err := netlink.LinkByName("lo")
    23  	if err != nil {
    24  		return err
    25  	}
    26  
    27  	if err := netlink.LinkSetUp(lo); err != nil {
    28  		return fmt.Errorf("couldn't set link loopback up: %v", err)
    29  	}
    30  	return nil
    31  }
    32  
    33  func init() {
    34  	osNetInit = linuxNetInit
    35  }