nla_nest_cancel(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

okay so this is nla_nest_cancel(9), from the Kernel API Manual β€” and it's literally the "never mind, undo that nest" button for netlink attributes. Cancel nesting of attributes. that's the whole vibe. 🫢


✨ SYNOPSIS ✨

void nla_nest_cancel (struct sk_buff *skb , struct nlattr *start );

πŸŽ€ ARGUMENTS πŸŽ€

  • skb β€” the socket buffer where your message is chillin'. that's the one you're editing.
  • start β€” the container attribute. the nesting parent, the main character of this whole operation πŸ‘‘

πŸ¦‹ DESCRIPTION πŸ¦‹

bestie. listen. when you nest attributes inside a container attribute and then you're like "hmm actually no," this is the function that backs you out of it gracefully πŸ’…

it removes the container attribute and including all nested attributes. like, the container goes, and everything stuffed inside it goes too. all of it. not a single nested attribute left behind. gone. periodt. πŸ”₯

and then β€” the description straight up says "Returns -EMSGSIZE". that's what the page says, so that's what i'm telling you. quoted, unchanged, no cap. 😭

ngl the synopsis says the return type is void, and the description still says it returns -EMSGSIZE. i'm not here to editorialize, i'm here to deliver the facts πŸ’€

🌈 SEE ALSO 🌈

okay this part is long, so buckle up 🎒 β€” the kernel file it points you at is ./include/net/netlink.h, plus struct nla_policy(9), struct nl_info(9), enum netlink_validation(9), nlmsg_msg_size(9), nlmsg_total_size(9), nlmsg_padlen(9), nlmsg_data(9), nlmsg_len(9), nlmsg_payload(9), nlmsg_attrdata(9), nlmsg_attrlen(9), nlmsg_ok(9), nlmsg_next(9), nla_parse(9), nla_parse_deprecated(9), nla_parse_deprecated_strict(9), __nlmsg_parse(9), nlmsg_parse(9), nlmsg_parse_deprecated(9), nlmsg_parse_deprecated_strict(9), nlmsg_find_attr(9), nla_validate_deprecated(9), nla_validate(9), nlmsg_validate_deprecated(9), nlmsg_report(9), nlmsg_seq(9), nlmsg_for_each_attr(9), nlmsg_for_each_attr_type(9), nlmsg_put(9), nlmsg_append(9), nlmsg_put_answer(9), nlmsg_new(9), nlmsg_new_large(9), nlmsg_end(9), nlmsg_get_pos(9), nlmsg_trim(9), nlmsg_cancel(9), nlmsg_free(9), nlmsg_consume(9), nlmsg_multicast_filtered(9), nlmsg_multicast(9), nlmsg_unicast(9), nlmsg_for_each_msg(9), nl_dump_check_consistent(9), nla_attr_size(9), nla_total_size(9), nla_padlen(9), nla_type(9), nla_data(9), nla_len(9), nla_ok(9), nla_next(9), nla_find_nested(9), nla_parse_nested(9), nla_parse_nested_deprecated(9).

still going, don't scroll away 🧚 β€” nla_put_u8(9), nla_put_u16(9), nla_put_be16(9), nla_put_net16(9), nla_put_le16(9), nla_put_u32(9), nla_put_uint(9), nla_put_be32(9), nla_put_net32(9), nla_put_le32(9), nla_put_u64_64bit(9), nla_put_be64(9), nla_put_net64(9), nla_put_le64(9), nla_put_s8(9), nla_put_s16(9), nla_put_s32(9), nla_put_s64(9), nla_put_sint(9), nla_put_string(9), nla_put_flag(9), nla_put_msecs(9), nla_put_in_addr(9), nla_put_in6_addr(9), nla_put_bitfield32(9), nla_get_u32(9), nla_get_u32_default(9), nla_get_be32(9), nla_get_be32_default(9), nla_get_le32(9), nla_get_le32_default(9), nla_get_u16(9), nla_get_u16_default(9), nla_get_be16(9), nla_get_be16_default(9), nla_get_le16(9), nla_get_le16_default(9), nla_get_u8(9), nla_get_u8_default(9), nla_get_u64(9), nla_get_u64_default(9), nla_get_uint(9), nla_get_uint_default(9), nla_get_be64(9), nla_get_be64_default(9), nla_get_le64(9), nla_get_le64_default(9), nla_get_s32(9), nla_get_s32_default(9), nla_get_s16(9), nla_get_s16_default(9), nla_get_s8(9), nla_get_s8_default(9), nla_get_s64(9), nla_get_s64_default(9), nla_get_sint(9), nla_get_sint_default(9), nla_get_flag(9), nla_get_msecs(9), nla_get_msecs_default(9), nla_get_in_addr(9), nla_get_in_addr_default(9), nla_get_in6_addr(9), nla_get_bitfield32(9), nla_memdup(9), nla_nest_start_noflag(9), nla_nest_start(9), nla_nest_end(9), nla_nest_end_safe(9), nla_put_empty_nest(9), __nla_validate_nested(9), nla_need_padding_for_64bit(9), nla_align_64bit(9), nla_total_size_64bit(9), nla_for_each_attr(9), nla_for_each_attr_type(9), nla_for_each_nested(9), nla_for_each_nested_type(9), nla_is_last(9).

like i said β€” iconic list, zero skips, we read the whole thing 🌸


okay that's the whole page bestie, you ate that πŸ“ β€” this one's from ./include/net, dated October 2026, and it's filed under nla_nest_cancel(9). go forth and un-nest responsibly πŸ’œπŸ‘‘

πŸ“¦ where this page comes from