batadv_transtable_best_orig(9)
π batadv_transtable_best_orig(9) β¨
okay so this is a page from the Kernel API Manual bestie β like, kernel-internal docs, man section 9, the whole thing. it's about batadv_transtable_best_orig, and no cap it's a tiny little function but it does something genuinely important. let's get into it π«Ά
πΈ NAME πΈ
batadv_transtable_best_orig β literally just "Get best originator list entry from tt entry" π that's it, that's the whole vibe. it goes into a translation table entry and pulls out the best originator list entry it can find. slay.
β¨ SYNOPSIS β¨
struct batadv_tt_orig_list_entry * batadv_transtable_best_orig (struct
batadv_priv *bat_priv , struct batadv_tt_global_entry *tt_global_entry
);
like, copy-paste the signature exactly pls, no typos, she's picky about that π₯
π ARGUMENTS π
bat_privβ the bat priv with all the mesh interface information. like yes that's the one, it's carrying every single detail about the mesh interface, main character behaviour honestly πtt_global_entryβ the global translation table entry that's about to be analyzed. this is the thing getting the vibe check π¦
π DESCRIPTION π
okay so this is the important bit and i need you to actually read it:
this function assumes the caller holds rcu_read_lock.
like, fr fr. it's not a suggestion, it's a precondition β the caller has to already be holding rcu_read_lock when they call this. not me warning you about locking discipline, but here we are π don't come crying to me when the locking is wrong, i told you π
π RETURN π
it returns the best originator list entry, or NULL on errors. that's the whole deal. if it works, you get the entry; if it doesn't, NULL and you deal with it π
β SEE ALSO β
okay bestie, this list is long. like, absurdly long. this function lives in the same kernel file β ./net/batman-adv/translation-table.c β as literally everyone else in this clique, and here's the whole squad, every single one of them, no skipping πβ¨
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_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_transtable_search(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)
iykyk π that's the whole translation-table friend group, they all live in ./net/batman-adv/translation-table.c.
and that's the page!! π§ source is ./net/batman-adv, dated October 2026, and it's batadv_transtable_best_orig(9) β go hold your rcu_read_lock and get that best originator list entry, bestie ππ¦πΈ
π¦ 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