nla_put_u8(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… nla_put_u8(9) β€” from the Kernel API Manual, bestie

okay so picture this: it's giving kernel, it's giving netlink, and you need to shove one single u8 into a socket buffer. that's the whole gig. this page lives in the Kernel API Manual and honestly? it's a little icon of efficiency. πŸŽ€


✨ NAME ✨

nla_put_u8 β€” literally just: add a u8 netlink attribute to a socket buffer. that's it. that's the function. πŸ¦‹


🌸 SYNOPSIS 🌸

int nla_put_u8 (struct sk_buff *skb , int attrtype , u8 value );

three args, one tiny int coming back at you. no cap. ✨


🫢 ARGUMENTS 🫢

  • skb β€” the socket buffer you're adding the attribute to. this is the main character, the canvas, the thing you're decorating. 🎨
  • attrtype β€” the attribute type. it's the label saying what this lil value actually is. iykyk. 🏷️
  • value β€” the numeric value. yes bestie, the actual u8. the payload. the star of the show. ⭐

πŸ‘‘ SEE ALSO πŸ‘‘

the kernel file is ./include/net/netlink.h and the family is huge β€” buckle up, we're listing the whole group chat πŸ’€

first up, the structs and the parsing/validation squad: 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).

then the nlmsg message-handling girlies: 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).

attribute basics + nested walking: 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).

now the put family β€” our girl's siblings and cousins 🫢: 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).

and the get family, because what's a put without a get, periodt πŸ’…: 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).

and the final boss round β€” nesting, alignment, and iteration: 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 everyone. every single one. do not come for me about the list length, i counted twice πŸ’€

🌸 okay that's the whole page bestie β€” this one came out of ./include/net and the version stamp on it says October 2026, so go forth and put your lil u8, you absolute icon πŸ«Άβœ¨πŸŽ€

πŸ“¦ where this page comes from