batadv_tt_l...ding_clients(9)
π¦ batadv_tt_l...ding_clients(9) β the Kernel API Manual page, bestie edition π¦
okay so real talk, the page header literally says batadv_tt_l...ding_clients(9) and it lives in the Kernel API Manual (section 9, kernel-space girlies only π
). The full name got chopped in the header, but the actual star of the show is batadv_tt_local_purge_pending_clients, and she's the main character of this whole page. Let's get into it πΈ
β¨ NAME β¨
batadv_tt_local_purge_pending_clients β finalise removal of pending local clients π§Ήπ
π SYNOPSIS π
void batadv_tt_local_purge_pending_clients (struct batadv_priv *bat_priv
);
π«Ά ARGUMENTS π«Ά
bat_privβ the bat priv with all the mesh interface information. yes that's the whole personality of this argument, she's holding all the mesh interface info, no cap π
π₯ DESCRIPTION π₯
so what does she actually do? she iterates over the local TT β that's the local translation table, iykyk β and physically removes every entry that has been marked as BATADV_TT_CLIENT_PENDING πβ¨
like, this is the finalise step. the entries were already flagged as pending, and now she's the one who actually makes them gone gone. no lingering, no "we'll deal with it later", just removal, physically, for real fr fr π¦
π SEE ALSO π
all the sisters and cousins in ./net/batman-adv/translation-table.c (that's the kernel file she lives in, go say hi π):
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)β the one that does the flagging, so like, the setup girlie π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_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_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)β roaming queen π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 is a whole family tree, and every single one of them is invited to the group chat π«Άβ¨
ngl bestie, the takeaway is simple: pending entries in the local TT get flagged with BATADV_TT_CLIENT_PENDING, and this function is the one that walks the local TT and physically removes every single one of them. flag β purge β done. iconic behaviour, honestly π
and that's the page!! π this lil kernel API moment came straight out of the source ./net/batman-adv, dated October 2026, and it's living its best life under the Kernel API Manual banner. mwah, bye 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