batadv_tvlv_...ners_process(9)
π batadv_tvlv_...ners_process(9) β a Kernel API Manual moment
okay bestie, so this is a page from the Kernel API Manual, and yes the function name in the header really is chopped like batadv_tvlv_...ners_process(9) β that's not me being lazy, that's what the man page calls itself. iconic of it honestly. anyway, sit down, grab a strawberry π, we're reading a kernel doc.
β¨ NAME β¨
batadv_tvlv_containers_process β she parses the tvlv buffer you hand her and calls the appropriate handlers. that's it, that's the whole job, and she does it slayfully π
π¦ SYNOPSIS π¦
int batadv_tvlv_containers_process (struct batadv_priv *bat_priv , u8
packet_type , struct batadv_orig_node *orig_node , struct sk_buff *skb ,
void *tvlv_value , u16 tvlv_value_len );
like, literally just look at her signature. she's taking six things and returning an int. no cap.
π ARGUMENTS π
bat_privβ the bat priv, aka the one holding all the mesh interface information. she's the main character of this struct, keep her close π«Άpacket_typeβ tells you which packet type this TVLV handler is being called for. iykyk, it's giving "which group chat is this message for" energyorig_nodeβ the orig node that's emitting the ogm packet. king behavior from the originator ngl πskbβ the skb that the TVLV handler is called for. yes, that skb. the socket buffer in question. πΈtvlv_valueβ the tvlv content itself. the actual goods. the payload, if you will β¨tvlv_value_lenβ the length of that tvlv content. because bestie, you can't just have content, you gotta know how much content
π₯ RETURN π₯
so what does she give you back?
NET_RX_SUCCESS when she's processing an OGM β simple, clean, slay.
or the combined return value of all the called handler callbacks. and that combined value is one of:
NET_RX_SUCCESSNET_RX_DROP- or, for
BATADV_MCASTpackets specifically, a negative errno code
lowkey important: that negative errno code is a BATADV_MCAST-only situation, so don't go expecting it on your regular OGM. π«Ά
π SEE ALSO π
okay this is the part where the man page just starts listing her entire friend group and honestly? obsessed. the kernel file this lives in is:
./net/batman-adv/tvlv.c
and here's every single one of her besties, no one left behind π:
batadv_tvlv_handler_release(9)batadv_tvlv_handler_put(9)batadv_tvlv_handler_get(9)batadv_tvlv_container_release(9)batadv_tvlv_container_put(9)batadv_tvlv_container_get(9)batadv_tvlv_container_list_size(9)batadv_tvlv_container_remove(9)batadv_tvlv_container_unregister(9)batadv_tvlv_container_register(9)batadv_tvlv_realloc_packet_buff(9)batadv_tvlv_container_ogm_append(9)batadv_tvlv_call_handler(9)batadv_tvlv_hdr_next(9)batadv_tvlv_containers_contain(9)batadv_tvlv_ogm_receive(9)batadv_tvlv_handler_register(9)batadv_tvlv_handler_unregister(9)batadv_tvlv_unicast_send(9)
and that's the whole page, bestie. hope you understood it fr fr β it's giving "I read a kernel doc and survived" πβ¨
mwah π β this page lives in ./net/batman-adv and it's dated October 2026, filed under the header batadv_tvlv_...ners_process(9). bye bestie, go parse some tvlv containers π§π
π¦ 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