batadv_dat_t...m_handler_v1(9)
π batadv_dat_tvlv_ogm_handler_v1(9) β the one where we process incoming dat tvlv container
okay so bestie, welcome to the Kernel API Manual β¨ this little page is all about one (1) very specific function in ./net/batman-adv/distributed-arp-table.c, and honestly? she's a whole vibe. she shows up, she handles a dat tvlv container, she leaves. no cap, that's the gig.
πΈ NAME πΈ
batadv_dat_tvlv_ogm_handler_v1 β process incoming dat tvlv container</p> π
π¦ SYNOPSIS π¦
void batadv_dat_tvlv_ogm_handler_v1 (struct batadv_priv *bat_priv ,
struct batadv_orig_node *orig , u8 flags , void *tvlv_value , u16
tvlv_value_len );
like, she takes five (5) arguments, she returns void, and she is NOT here to give you feedback about it. periodt. π
β¨ ARGUMENTS β¨
okay so here's the whole cast, main character energy each and every one:
bat_privβ the bat priv with all the mesh interface information π this is the one who knows everything, the group chat admin of the mesh.origβ theorig_nodeof the ogm π§ your origin node bestie.flagsβ flags indicating the tvlv state (seebatadv_tvlv_handler_flags) π© like little status stickers on the packet, iykyk.tvlv_valueβ tvlv buffer containing the gateway data π the actual payload, the good stuff.tvlv_value_lenβ tvlv buffer length π yes bestie we're counting the bytes, we always count the bytes.
ngl if you forget which argument is which, that's a vibe check you will fail. it's giving "read the list again" energy π
π SEE ALSO π
Kernel file ./net/batman-adv/distributed-arp-table.c is the home base π and here is the entire friend group β no one left out, everyone gets a shoutout:
enum batadv_bootpop(9)enum batadv_boothtype(9)enum batadv_dhcpoptioncode(9)enum batadv_dhcptype(9)struct batadv_dhcp_packet(9)struct batadv_dhcp_header(9)struct batadv_dhcp_option_header(9)batadv_dat_start_timer(9)batadv_dat_entry_release(9)batadv_dat_entry_put(9)batadv_dat_to_purge(9)__batadv_dat_purge(9)batadv_dat_purge(9)batadv_compare_dat(9)batadv_arp_hw_src(9)batadv_arp_ip_src(9)batadv_arp_hw_dst(9)batadv_arp_ip_dst(9)batadv_hash_dat(9)batadv_dat_entry_hash_find(9)batadv_dat_entry_add(9)batadv_dbg_arp(9)batadv_is_orig_node_eligible(9)batadv_choose_next_candidate(9)batadv_dat_select_candidates(9)batadv_dat_forward_data(9)batadv_dat_tvlv_container_update(9)batadv_dat_status_update(9)batadv_dat_hash_free(9)batadv_dat_init(9)batadv_dat_free(9)batadv_dat_cache_dump_entry(9)batadv_dat_cache_dump_bucket(9)batadv_dat_cache_dump(9)batadv_arp_get_type(9)batadv_dat_get_vid(9)batadv_dat_arp_create_reply(9)batadv_dat_snoop_outgoing_arp_request(9)batadv_dat_snoop_incoming_arp_request(9)batadv_dat_snoop_outgoing_arp_reply(9)batadv_dat_snoop_incoming_arp_reply(9)batadv_dat_check_dhcp_ipudp(9)batadv_dat_check_dhcp(9)batadv_dat_get_dhcp_message_type(9)batadv_dat_dhcp_get_yiaddr(9)batadv_dat_get_dhcp_chaddr(9)batadv_dat_put_dhcp(9)batadv_dat_check_dhcp_ack(9)batadv_dat_snoop_outgoing_dhcp_ack(9)batadv_dat_snoop_incoming_dhcp_ack(9)batadv_dat_drop_broadcast_packet(9)
like, that's fifty (50) whole references bestie, we are NOT skipping any of them, that would be so rude π
π«Ά reminder: this is the<pink>Kernel API Manual</pink>, so everything here is kernel-flavoured. stay curious, stay caffeinated.
and that's the page!! π sourced straight from ./net/batman-adv, dated October 2026 β big up the batman-adv girlies, they ate and left absolutely no crumbs π₯πβ sign-off slay complete, mwah π
π¦ 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