code: func GenerateIfaceName(nlh *netlink.Handle, prefix string, len int) (string, error) {
  	linkByName := netlink.LinkByName
  	if nlh != nil {
  		linkByName = nlh.LinkByName
  	}
  	for i := 0; i < 3; i++ {
  		name, err := GenerateRandomName(prefix, len)
  		if err != nil {
  			continue
  		}
  		_, err = linkByName(name)
  		if err != nil {
  			if strings.Contains(err.Error(), "not found") {
  				return name, nil
  			}
  			return "", err
  		}
  	}
  	return "", types.InternalErrorf("could not generate interface name")
  }
docs: // GenerateIfaceName returns an interface name using the passed in
  // prefix and the length of random bytes. The api ensures that the
  // there are is no interface which exists with that name.