nla_put_le16(9)
π¦ nla_put_le16(9) β the Kernel API Manual page you actually want to read π
okay so picture this: you're deep in the Kernel API Manual, section 9, and you just need to shove a little-endian 16-bit number into a netlink message. bestie, this is literally that page. no cap. β¨
πΈ NAME πΈ
nla_put_le16 β the function that adds a __le16 netlink attribute to a socket buffer π
π« SYNOPSIS π«
int nla_put_le16 (struct sk_buff *skb , int attrtype , __le16 value );
that's it, that's the whole call. yes it returns an int, no I'm not gonna lie to you about anything that's not on this page π«Ά
π§ ARGUMENTS π§
skbβ the socket buffer you're adding the attribute to. it's the main character here, show it some respect πattrtypeβ the attribute type. this is how the message knows which attribute you're handing it π·οΈvalueβ the numeric value itself. a__le16of pure potential π
π₯ SEE ALSO π₯
okay so this list is long long β like, the whole netlink friend group showed up to the party. every single one, in order, no cap:
- Kernel file
./include/net/netlink.hβ plusstruct 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_find_nested(9),nla_parse_nested(9),nla_parse_nested_deprecated(9)- the put crew:
nla_put_u8(9),nla_put_u16(9),nla_put_be16(9),nla_put_net16(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) - the get crew:
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) - the nesting + iteration girlies:
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 I said. the whole friend group. π
that's the page, bestie β go put that __le16 where it belongs π
sign-off time: this lil beauty lives in ./include/net, and it's dated October 2026. iykyk. slay, 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