nlmsg_multicast(9)
π nlmsg_multicast β a Kernel API Manual moment, brought to you by your fav Unix bestie
okay so bestie, picture this: you're deep in kernel land, the manual you're reading is literally called Kernel API Manual, and the function on the cover is nlmsg_multicast. it's giving "one message, many recipients" and honestly? obsessed. π¦
π NAME (the vibes check)
nlmsg_multicast β multicast a netlink message. that's it. that's the whole thing. one netlink message, spread out to everybody in the group. slay. β¨
π SYNOPSIS (the actual signature, no cap)
int nlmsg_multicast (struct sock *sk , struct sk_buff *skb , u32 portid
, unsigned int group , gfp_t flags );
look at her. five arguments. main character energy fr π
π ARGUMENTS (let's break it down, iykyk)
skβ the netlink socket you're spreading messages to. this is the one doing the scattering, like confetti at a party πskbβ the netlink message itself, dressed up as a socket buffer. it's the whole point of the operation, the it-girl of the function πportidβ your own netlink portid. why do we pass it? so you literally don't send the message to yourself. no self-multicasts, we're not doing that today πgroupβ the multicast group id. who's getting the message. the guest list πflagsβ allocation flags. the little settings gremlins that shape how the allocation goes down β
π SEE ALSO (the extended universe β every single one, bestie, i did not skip a thing)
kernel file ./include/net/netlink.h plus this entire friend group right here: π«Ά
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_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 i said. the whole extended universe. every single one made the list, no gatekeeping π
and that's the page, bestie π this little love letter lives in the ./include/net directory and it's dated October 2026 β go forth and multicast responsibly, mwah πβ¨
π¦ 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