def nla_put_nested(msg, attrtype, nested):
    """Add nested attributes to Netlink message.

    https://github.com/thom311/libnl/blob/libnl3_2_25/lib/attr.c#L772

    Takes the attributes found in the `nested` message and appends them to the message `msg` nested in a container of
    the type `attrtype`. The `nested` message may not have a family specific header.

    Positional arguments:
    msg -- Netlink message (nl_msg class instance).
    attrtype -- attribute type (integer).
    nested -- message containing attributes to be nested (nl_msg class instance).

    Returns:
    0 on success or a negative error code.
    """
    _LOGGER.debug('msg 0x%x: attr <> %d: adding msg 0x%x as nested attribute', id(msg), attrtype, id(nested))
    return nla_put(msg, attrtype, nlmsg_datalen(nested.nm_nlh), nlmsg_data(nested.nm_nlh))
Add nested attributes to Netlink message.

    https://github.com/thom311/libnl/blob/libnl3_2_25/lib/attr.c#L772

    Takes the attributes found in the `nested` message and appends them to the message `msg` nested in a container of
    the type `attrtype`. The `nested` message may not have a family specific header.

    Positional arguments:
    msg -- Netlink message (nl_msg class instance).
    attrtype -- attribute type (integer).
    nested -- message containing attributes to be nested (nl_msg class instance).

    Returns:
    0 on success or a negative error code.