_batadv_tt_update_changes(9)
π _batadv_tt_update_changes(9) π
okay so bestie, this is a page straight out of the Kernel API Manual and it's all about one lil function that makes the mesh's translation table actually do the thing π buckle up.
πΈ NAME πΈ
_batadv_tt_update_changes β apply a list of TT changes to the global TT β¨
(that's the whole vibe: you got a list of changes, you're applying them, no cap)
π¦ SYNOPSIS π¦
void _batadv_tt_update_changes (struct batadv_priv *bat_priv , struct
batadv_orig_node *orig_node , struct batadv_tvlv_tt_change *tt_change ,
u16 tt_num_changes , u8 ttvn );
literally just five args, she's not complicated π
π ARGUMENTS π
bat_privβ the bat priv, aka the whole mesh interface info situation, the main character's backpack πorig_nodeβ the originator that's out here announcing the changes, iykyktt_changeβ an array of TT change entries you're about to apply, one by onett_num_changesβ how many entries are intt_change, aka the count, aka don't lose track bestiettvnβ the TTVN oforig_nodethat corresponds tott_change
π DESCRIPTION π
So the move here is: walk tt_change and add/remove the announced clients in the global TT. That's it, that's the function, and she ate π₯
β οΈ but here's the important part: it aborts early and does not mark the orig_node TT as initialized if adding an entry fails β so that the next TT request can re-sync the full table. it's giving "graceful retreat", not "crash and burn" π
so like. if a single add doesn't go through? she's out, she's not flagging anything as initialized, and the next TT request gets to come through and re-sync the whole table. self-healing queen behavior honestly π§
π SEE ALSO π
okay this list is LONG and I'm obsessed, so here we go β all of it, in the kernel file ./net/batman-adv/translation-table.c πΈ
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_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_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 I said. iconic list. go read them all, periodt π
and that's the whole page bestie π«Ά this cutie lives under ./net/batman-adv and it's stamped October 2026 β go forth and sync those tables β¨π
π
π¦ 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