nla_find_nested(9)
π NAME
nla_find_nested β bestie, this is the function that goes digging through a set of nested attributes to find you the one you actually want β¨
π¦ SYNOPSIS
struct nlattr * nla_find_nested (const struct nlattr *nla , int attrtype );
π ARGUMENTS
nlaβ the attribute that's holding all the nested attributes, like the cutest little container ever. It's the one doing the containing, not the one being found π«Άattrtypeβ the type of attribute you're hunting for. This is the vibe check you're running everything against π
π RETURN
It gives you back the first attribute which matches the specified type. First match wins, no cap β it doesn't keep scrolling once it finds the one π₯
π SEE ALSO
Okay so this is the part where I tell you about the whole friend group β literally the entire ./include/net/netlink.h Kernel file squad, like:
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_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)
Ngl bestie, that's a lot of friends. Read them all, they're all icons ππ
πΈ So yeah, this page lives in ./include/net, it's part of the Kernel API Manual, and it's stamped October 2026 β go off, calendar. That's the whole tea, ily, bye π«Άππ
π¦ 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