docs: def nlmsg_alloc(len_=default_msg_size):
      """Allocate a new Netlink message with maximum payload size specified.
  
      https://github.com/thom311/libnl/blob/libnl3_2_25/lib/msg.c#L299
  
      Allocates a new Netlink message without any further payload. The maximum payload size defaults to
      resource.getpagesize() or as otherwise specified with nlmsg_set_default_size().
  
      Returns:
      Newly allocated Netlink message (nl_msg class instance).
      """
      len_ = max(libnl.linux_private.netlink.nlmsghdr.SIZEOF, len_)
      nm = nl_msg()
      nm.nm_refcnt = 1
      nm.nm_nlh = libnl.linux_private.netlink.nlmsghdr(bytearray(b'\0') * len_)
      nm.nm_protocol = -1
      nm.nm_size = len_
      nm.nm_nlh.nlmsg_len = nlmsg_total_size(0)
      _LOGGER.debug('msg 0x%x: Allocated new message, maxlen=%d', id(nm), len_)
      return nm