nla_len(9)
πΈ nla_len(9) πΈ
Ok so bestie, welcome to the Kernel API Manual page for nla_len β yes that's the manual name, we're fancy here π
β and honestly? This one is a little snack. Short, sweet, and it does exactly one thing. Let's get into it π
β¨ NAME β¨
nla_len β length of payload π
That's it. That's the whole job. It tells you how long the payload is. Iconic behaviour, no notes.
π¦ SYNOPSIS π¦
u16 nla_len (const struct nlattr *nla );
Lowkey the prettiest little signature. Returns a u16, takes one pointer, refuses to elaborate further. Main character energy fr fr β¨
π ARGUMENTS π
nlaβ netlink attribute π«Ά
That's the one and only thing you hand it: a netlink attribute. It's a const struct nlattr *, so like, it's not gonna touch your stuff, it's just gonna look at it. Respectful. We love that for us πΈ
π SEE ALSO π
Okay bestie, buckle in, because this list is long β it's giving "the whole netlink friend group showed up to the party" π Every single one of these is invited, no gatekeeping, no cap:
- 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_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_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)
Likeβ¦ every single one, bestie. Not me listing the entire netlink extended family π but they're all here, so go read them, iykyk π§
π‘ Reminder that nla_len gives you the length of payload β that's the whole vibe. Nothing more, nothing less. Periodt. π
Okay that's the page! Hope it ate π This little number lives in ./include/net and it's dated October 2026, so likeβ¦ bookmark it, screenshot it, tell your friends π Byeee! π
π¦ 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