nla_put_flag(9)
π nla_put_flag β Kernel API Manual π
okay so bestie, listen β this one's a little function from <net/netlink.h> (well, the SEE ALSO says ./include/net/netlink.h, and yes we're getting there) and it's literally the "just add a flag, nothing else, no payload, no drama" move. It's nla_put_flag(9) in the Kernel API Manual, and it's giving "minimalist icon" energy. β¨
πΈ NAME πΈ
nla_put_flag β add a flag netlink attribute to a socket buffer π¦
Like, that's it. That's the whole job. You have a socket buffer, you have an attribute type, and this function drops a flag attribute in there. No value attached, because a flag is a flag, periodt. π
β SYNOPSIS β
int nla_put_flag (struct sk_buff *skb , int attrtype );
Two arguments, one int coming back at you. Clean, simple, iconic. π
π ARGUMENTS π
skbβ socket buffer to add attribute to. This is the buffer you're putting the attribute into, bestie, it's the main character of this whole operation. πattrtypeβ attribute type. The type of the attribute you're adding. That's the whole description, no cap, that's literally what the manpage says and we're not out here inventing lore. π
ngl the manpage is extremely chill about these two. Two args, two one-liners. It's giving "confident and unbothered." π
π¦ SEE ALSO π¦
okay so this is the part where the manual page absolutely ate β it is a whole friend group of kernel netlink functions and structs and enums, and we are naming every single one because nobody gets left behind at this sleepover. π
Kernel file ./include/net/netlink.h: 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), 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_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, yes, that's the whole list, and yes, our girl nla_put_flag is the lowkey one in a friend group of like a hundred netlink functions. she's not loud about it. she just puts flags. π₯
bestie heads-up: the manual page itself doesn't spell out a return value description, no ERRORS section, no ENVIRONMENT, no FILES, no EXIT STATUS, no BUGS, no AUTHOR, no COPYRIGHT, no LICENSE. What you see above is literally the whole page. Don't let anyone tell you otherwise. π
πβ¨ and that's the whole page, bestie β sourced from the kernel file path ./include/net π, dated October 2026 β, and signed off with love from the Kernel API Manual crew ππ«Ά you understood it, you slayed it, and honestly? nla_put_flag is kind of an icon for that. bye bestie! π
π
π¦ 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