code: func NetworkSetMacAddress(iface *net.Interface, macaddr string) error {
  	s, err := getNetlinkSocket()
  	if err != nil {
  		return err
  	}
  	defer s.Close()
  
  	hwaddr, err := net.ParseMAC(macaddr)
  	if err != nil {
  		return err
  	}
  
  	var (
  		MULTICAST byte = 0x1
  	)
  
  	if hwaddr[0]&0x1 == MULTICAST {
  		return fmt.Errorf("Multicast MAC Address is not supported: %s", macaddr)
  	}
  
  	wb := newNetlinkRequest(syscall.RTM_SETLINK, syscall.NLM_F_ACK)
  
  	msg := newIfInfomsg(syscall.AF_UNSPEC)
  	msg.Index = int32(iface.Index)
  	msg.Change = DEFAULT_CHANGE
  	wb.AddData(msg)
  
  	macdata := make([]byte, 6)
  	copy(macdata, hwaddr)
  	data := newRtAttr(IFLA_ADDRESS, macdata)
  	wb.AddData(data)
  
  	if err := s.Send(wb); err != nil {
  		return err
  	}
  	return s.HandleAck(wb.Seq)
  }
docs: // Set link layer address ie. MAC Address.
  // This is identical to running: ip link set dev $name address $macaddress