nla_put_in6_addr(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… nla_put_in6_addr β€” Kernel API Manual ✨

okay so bestie, welcome to a section 9 page (that's the Kernel API Manual, iykyk β€” the place where all the kernel-internal functions live) and today's main character is nla_put_in6_addr. she's short, she's sweet, she does exactly one thing, and honestly? she ate. πŸŽ€


🌸 NAME

nla_put_in6_addr β€” Add an IPv6 address netlink attribute to a socket buffer

like, that's the whole personality. adding an IPv6 address as a netlink attribute. slay. πŸ’œ


πŸ¦‹ SYNOPSIS

int nla_put_in6_addr (struct sk_buff *skb , int attrtype , const struct
       in6_addr *addr );

that's it. three params, one int back. no cap. ✨


πŸŽ€ ARGUMENTS

  • skb β€” socket buffer to add attribute to. this is the buffer you're ✨blessing✨ with your brand new attribute, so hand her over πŸ’–
  • attrtype β€” attribute type. the label on the box, basically β€” what kind of attribute this is 🏷️
  • addr β€” IPv6 address. the actual struct in6_addr * payload, the moment itself πŸ‘‘

πŸ’… SEE ALSO

ikyk it's a long one, but here's the whole friend group, and yes we're listing every single one because they all matter 🫢

the kernel file to peep 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).

then the size/type squad: 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).

then literally every put in the building (our girl is one of them πŸ’–): 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_bitfield32(9).

then the getters (the other side of the group chat πŸ‘€): 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 rest of the extended universe, fr fr 🌈: 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).

ok that was a lot of links but we do NOT skip the boring parts in this house. every single one is here. periodt. πŸ’€

and that's the whole page!! this one lives in ./include/net, it's the October 2026 edition, and it's filed under nla_put_in6_addr(9). go forth and put your IPv6 addresses, bestie β€” you're gonna do amazing πŸ§šβ€β™€οΈπŸ’–β­

πŸ“¦ where this page comes from