code: func (e *Ethtool) MsglvlSet(intf string, valset uint32) (uint32, uint32, error) {
  	edata := ethtoolValue{
  		cmd: ETHTOOL_GMSGLVL,
  	}
  
  	var name [IFNAMSIZ]byte
  	copy(name[:], []byte(intf))
  
  	ifr := ifreq{
  		ifr_name: name,
  		ifr_data: uintptr(unsafe.Pointer(&edata)),
  	}
  
  	_, _, ep := syscall.Syscall(syscall.SYS_IOCTL, uintptr(e.fd),
  		SIOCETHTOOL, uintptr(unsafe.Pointer(&ifr)))
  	if ep != 0 {
  		return 0, 0, syscall.Errno(ep)
  	}
  
  	readval := edata.data
  
  	edata.cmd = ETHTOOL_SMSGLVL
  	edata.data = valset
  
  	_, _, ep = syscall.Syscall(syscall.SYS_IOCTL, uintptr(e.fd),
  		SIOCETHTOOL, uintptr(unsafe.Pointer(&ifr)))
  	if ep != 0 {
  		return 0, 0, syscall.Errno(ep)
  	}
  
  	return readval, edata.data, nil
  }
docs: // MsglvlSet returns the read-msglvl, post-set-msglvl of the given interface.