batadv_transtable_search(9)
π batadv_transtable_search(9) β Kernel API Manual, but make it make sense
okay bestie, sit down, we're learning kernel API today. this one lives in the Kernel API Manual and it's literally the glow-up your mesh network needs. it's called batadv_transtable_search, and honestly? it's giving matchmaker energy. π₯
β¨ NAME β¨
batadv_transtable_search β get the mesh destination for a given client π―
π¦ SYNOPSIS π¦
struct batadv_orig_node * batadv_transtable_search (struct batadv_priv
*bat_priv , const u8 *src , const u8 *addr , unsigned short vid );
like yes, it returns a struct batadv_orig_node * β a whole pointer, not a little guy. π
πΈ ARGUMENTS πΈ
four args, all of them main-character in their own way:
bat_privβ the bat priv with all the mesh interface information. it's the one holding the group chat, i.e. all the deets about your mesh interface π«Άsrcβ mac address of the source client. who's doing the talking π¬addrβ mac address of the destination client. who's getting talked to π¬vidβ VLAN identifier. gotta know which vlan lane we're in, no cap π£οΈ
β RETURN β
it hands you a pointer to the originator that was selected as destination in the mesh for contacting the client addr, and NULL otherwise. periodt. π«‘
and like, the slay detail: if there are multiple originators serving the same client, the function returns the best one β best in terms of metric towards the destination node ππ₯. we love a function that picks the icon of the group.
π DESCRIPTION π
one thing, and it's important, so listen up:
if the two clients are AP isolated, the function returns NULL. that's it, that's the vibe check, and they fail it π
π§ SEE ALSO π§
it's a whole friend group, fr fr. all of these live in the kernel file ./net/batman-adv/translation-table.c β here's everyone invited to the party π:
batadv_compare_tt(9)batadv_choose_tt(9)batadv_tt_hash_find(9)batadv_tt_local_hash_find(9)batadv_tt_global_hash_find(9)batadv_tt_local_entry_release(9)batadv_tt_local_entry_put(9)batadv_tt_global_entry_release(9)batadv_tt_global_hash_count(9)batadv_tt_local_size_mod(9)batadv_tt_local_size_inc(9)batadv_tt_local_size_dec(9)batadv_tt_global_size_mod(9)batadv_tt_global_size_inc(9)batadv_tt_global_size_dec(9)batadv_tt_orig_list_entry_release(9)batadv_tt_orig_list_entry_put(9)batadv_tt_local_event(9)batadv_tt_len(9)batadv_tt_entries(9)batadv_tt_local_table_transmit_size(9)batadv_tt_local_init(9)batadv_tt_global_free(9)batadv_tt_local_add(9)batadv_tt_prepare_tvlv_global_data(9)batadv_tt_prepare_tvlv_local_data(9)batadv_tt_tvlv_container_update(9)batadv_tt_local_dump_entry(9)batadv_tt_local_dump_bucket(9)batadv_tt_local_dump(9)batadv_tt_local_set_pending(9)batadv_tt_local_remove(9)batadv_tt_local_purge_list(9)batadv_tt_local_purge(9)batadv_tt_local_table_free(9)batadv_tt_global_init(9)batadv_tt_changes_list_free(9)batadv_tt_global_orig_entry_find(9)batadv_tt_global_entry_has_orig(9)batadv_tt_global_sync_flags(9)batadv_tt_global_orig_entry_add(9)batadv_tt_global_add(9)batadv_transtable_best_orig(9)batadv_tt_global_dump_subentry(9)batadv_tt_global_dump_entry(9)batadv_tt_global_dump_bucket(9)batadv_tt_global_dump(9)_batadv_tt_global_del_orig_entry(9)batadv_tt_global_del_orig_list(9)batadv_tt_global_del_orig_node(9)batadv_tt_global_del_roaming(9)batadv_tt_global_del(9)batadv_tt_global_del_orig(9)batadv_tt_global_to_purge(9)batadv_tt_global_purge(9)batadv_tt_global_table_free(9)_batadv_is_ap_isolated(9)batadv_tt_global_crc(9)batadv_tt_local_crc(9)batadv_tt_req_node_release(9)batadv_tt_req_node_put(9)batadv_tt_req_list_free(9)batadv_tt_save_orig_buffer(9)batadv_tt_req_purge(9)batadv_tt_req_node_new(9)batadv_tt_local_valid(9)batadv_tt_global_valid(9)batadv_tt_tvlv_generate(9)batadv_tt_global_check_crc(9)batadv_tt_local_update_crc(9)batadv_tt_global_update_crc(9)batadv_send_tt_request(9)batadv_send_other_tt_response(9)batadv_send_my_tt_response(9)batadv_send_tt_response(9)_batadv_tt_update_changes(9)batadv_tt_fill_gtable(9)batadv_tt_update_changes(9)batadv_is_my_client(9)batadv_handle_tt_response(9)batadv_tt_roam_list_free(9)batadv_tt_roam_purge(9)batadv_tt_check_roam_count(9)batadv_send_roam_adv(9)batadv_tt_purge(9)batadv_tt_free(9)batadv_tt_local_set_flags(9)batadv_tt_local_purge_pending_clients(9)batadv_tt_local_commit_changes_nolock(9)batadv_tt_local_commit_changes(9)batadv_is_ap_isolated(9)batadv_tt_update_orig(9)batadv_tt_global_client_is_roaming(9)batadv_tt_local_client_is_roaming(9)batadv_tt_add_temporary_global_entry(9)batadv_tt_local_resize_to_mtu(9)batadv_tt_tvlv_ogm_handler_v1(9)batadv_tt_tvlv_unicast_handler_v1(9)batadv_roam_tvlv_unicast_handler_v1(9)batadv_tt_init(9)batadv_tt_global_is_isolated(9)batadv_tt_cache_init(9)batadv_tt_cache_destroy(9)
likeβ¦ that's a lot of reading but they're all lowkey iconic in their own right, iykyk πβ¨
and that's the whole page bestie, you ate that π
this little love letter came to you from ./net/batman-adv, dated October 2026 β see you in the next manpage, 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