nla_put_be16(9)
π nla_put_be16(9) β from the Kernel API Manual
okay so bestie, buckle up π this is a page from the Kernel API Manual, straight out of ./include/net, and it's genuinely one of the tiniest little icons in the whole netlink family. no cap.
β¨ NAME β¨
nla_put_be16 β the function that adds a __be16 netlink attribute to a socket buffer π¦ she's small, she's big-endian, she's doing her job.
π SYNOPSIS π
int nla_put_be16 (struct sk_buff *skb , int attrtype , __be16 value );
like, she takes three things and gives you back an int. main character energy fr fr π
πΈ ARGUMENTS πΈ
skbβ the socket buffer you're adding the attribute to π«Ά this is the canvas, the vibe, the whole mood.attrtypeβ the attribute type. yes, this is the label on the little box you're stuffing into the skb πvalueβ the numeric value. the actual payload, the moment, the icon herself β (and it's a__be16, so mind your endianness, iykyk)
π¦ SEE ALSO π¦
okay this is the part where the page lowkey dumps the entire netlink extended fam on you π but honestly? iconic. here's everyone:
start with the kernel file ./include/net/netlink.h and its buddies struct nla_policy(9), struct nl_info(9), and enum netlink_validation(9) π
then the nlmsg_* girlies: 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) β¨
parsing + validating era: 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) π
building + sending: 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) π₯
attribute plumbing: 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) π§
the whole nla_put_* putter squad (your girl nla_put_be16(9) runs with these): nla_put_u8(9), nla_put_u16(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) π (yes that's all of them, no I didn't skip any, don't @ me)
the nla_get_* getter squad: 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 final boss row: 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) π
periodt. go read them, they're all right there π
ngl bestie, that's the whole page β she's short, she's sweet, she puts a big-endian 16-bit value in a socket buffer and she leaves. 10/10, no notes πΈ
okay that's a wrap!! this cutie came out of ./include/net, dated October 2026, and she lives in the Kernel API Manual. mwah, go forth and netlink responsibly π«Άπ
β¨
π¦ 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