nla_parse_deprecated(9)
nla_parse_deprecated(9)</p> π
okay so bestie, we're in the Kernel API Manual β¨ β specifically the page for nla_parse_deprecated, which lives in ./include/net in the kernel tree. yes it says "deprecated" right in the name, we'll get to that vibe π«Ά
πΈ NAME πΈ
nla_parse_deprecated β literally "parse a stream of attributes into a tb buffer", that's the whole gig π
π¦ SYNOPSIS π¦
int nla_parse_deprecated (struct nlattr **tb , int maxtype , const
struct nlattr *head , int len , const struct nla_policy *policy , struct
netlink_ext_ack *extack );
she's a big girl, six arguments, no cap π
π ARGUMENTS π
tbβ the destination array, and it needsmaxtype+1elements. do not skimp on the size bestie, she counts πmaxtypeβ the maximum attribute type you're expecting. that's the ceiling, periodt.headβ head of the attribute stream. the starting point, the main character πlenβ length of the attribute stream. how much of the stream we're actually reading πΈpolicyβ the validation policy. the rulebook, iykyk πextackβ extended ACK pointer. the receipts, fr fr π§Ύ
π¦ DESCRIPTION π¦
so what she does: she parses a stream of attributes and stashes a pointer to each attribute inside the tb array β and you can reach each one via its attribute type. cute, organized, iconic β¨
two things to know, and this is the important part so listen up:
- attributes with a type that exceeds
maxtypeget ignored entirely π - attributes from the
policyare not always strictly validated β only for new attributes. lowkey that's the whole reason this one's marked deprecated, so don't come for me π
β RETURN β
0 on success, or a negative error code. that's it, that's the return π
π SEE ALSO π
the kernel file ./include/net/netlink.h, and honestly the whole netlink extended family showed up to the group chat β every single one of these, no cuts π₯
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_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_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)
heads up bestie: the name literally says deprecated π that's not me being dramatic, that's the actual function name. use it when you gotta, but like... know what you're doing, okay? π«Ά
that's the whole page!! mwah π this one shipped with the kernel tree at ./include/net, dated October 2026 β catch you in the next manpage, bestie π¦β¨
π¦ 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