nla_next(9)
πΈ nla_next (9) β Kernel API Manual energy β¨
okay so first of all, hi bestie π you've wandered into the Kernel API Manual, and the star of the show is nla_next β the little function that keeps a netlink attribute stream moving. no cap, it's giving "walk the list, bestie" πΆββοΈβ¨
π NAME
nla_next β next netlink attribute in attribute stream π¦
π SYNOPSIS
struct nlattr * nla_next (const struct nlattr *nla , int *remaining );
β¨ ARGUMENTS
nlaβ netlink attribute. the one you're standing on rn πremainingβ number of bytes remaining in attribute stream. think of it as your little countdown snack π
π₯ RETURN
it hands you the next netlink attribute in the attribute stream, and it decrements remaining by the size of the current attribute. the way it does two things at once?? multitasking queen, honestly. periodt π
ngl, keep an eye on remaining β it's not just decorative, it's literally getting smaller as you skip along π
π SEE ALSO
starting with the Kernel file ./include/net/netlink.h, then the structs and enums: struct nla_policy(9), struct nl_info(9), enum netlink_validation(9) π§
all the nlmsg-flavoured besties: 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) β¨
the parsing crew: 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) π«Ά
the message-lifecycle 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) π
the sizing 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_find_nested(9), nla_parse_nested(9), nla_parse_nested_deprecated(9) π
every single nla_put in existence, no crumbs left: 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) π₯
and the matching nla_get squad, also complete, also iconic: 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) π
nesting nation: 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) π§
and finally the loop legends themselves: 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) β
π«Ά that's the whole page, bestie β and here's the cute little sign-off: this one comes from ./include/net, dated October 2026, filed under nla_next(9). go forth and iterate those attributes, you absolute main character ππ
π¦ 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