nlmsg_data(9)
π nlmsg_data β head of message payload
okay bestie, first things first: this is page nlmsg_data(9), like, section 9 of the Kernel API Manual β the kernel-docs girlies, not the user-command ones. and it's genuinely such a tiny little function. one job. one vibe. she's the head of the message payload and she knows it. periodt. β¨
π NAME π
nlmsg_data β head of message payload
like, literally just: gimme the pointer to where the actual payload starts inside a netlink message. that's the whole personality. iconic, lowkey.
π¦ SYNOPSIS π¦
void * nlmsg_data (const struct nlmsghdr *nlh );
copy it exactly, bestie β yes there's a space before the );, no we're not fixing it, she's perfect as she is π
πΈ ARGUMENTS πΈ
nlhβ the netlink message header, typedconst struct nlmsghdr *. that's your ticket, your little badge that says "I'm allowed in the netlink club." hand her over and she gives you the payload head. no cap.
β¨ SEE ALSO β¨
okay so this is the part where she tags literally everyone in the group chat β and there are so many of them, so I'm not dropping a single one. π«Ά
first, the sacred text herself: kernel file ./include/net/netlink.h
then the crew, in the order she listed them:
struct nla_policy(9),struct nl_info(9),enum netlink_validation(9)nlmsg_msg_size(9),nlmsg_total_size(9),nlmsg_padlen(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)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_nest_cancel(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β¦ that's the whole extended friend group and not one of them got left on read. ππ
fr fr though: every one of those is a real cross-reference, so if you're chasing a netlink question, one of them is your girl. don't come for me if you skim and miss one, i listed them all, i promise π
and that's the page!! mwah π written under ./include/net, dated October 2026, living proudly in section 9 of the Kernel API Manual β go be the head of your own message payload, bestie. slay. πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms