batadv_tt_local_purge_list(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… batadv_tt_local_purge_list β€” kernel API manual, section 9

okay so this is batadv_tt_local_purge_list(9), straight out of the Kernel API Manual, and it's genuinely one of those little cleanup gremlins that keeps the mesh from drowning in its own history. Bestie, it purges inactive tt local entries. That's the whole vibe. It's the "girl, you haven't been active in a minute, bye" of the batman-adv translation table. 🧹✨


✨ NAME ✨

batadv_tt_local_purge_list β€” purge inactive tt local entries

Like, literally the name. No plot twist. πŸ’…


🌸 SYNOPSIS 🌸

void batadv_tt_local_purge_list (struct batadv_priv *bat_priv , struct
       hlist_head *head , int timeout );

Three args, void return, no drama. She goes in, she cleans up, she leaves. main character energy fr fr. πŸ‘‘


πŸŽ€ ARGUMENTS πŸŽ€

  • bat_priv β€” the bat priv with all the mesh interface information. it's the big one, the whole context, the girl who knows everything about every mesh interface. do not lose her. 🫢
  • head β€” pointer to the list containing the local tt entries. yes, this is the list you're about to go through. the one getting the vibe check. 🌸
  • timeout β€” parameter deciding whether a given tt local entry is considered inactive or not. so it's not a timer that fires, it's the threshold β€” the "how stale is too stale" number. each entry gets judged against it, one by one, no cap. 😭

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./net/batman-adv/translation-table.c β€” and okay the extended family is huge, so buckle up bestie, here's the whole group chat:

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(9), batadv_tt_local_table_free(9), batadv_tt_global_init(9), batadv_tt_changes_list_free(9).

More. There's always more. 🌈

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).

Still going, we're committed now. πŸ”₯

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).

that's the whole list, i counted, we ate. πŸ“


ngl, the classic move is batadv_tt_local_purge(9) for the whole table, and this one when you've already got a specific head in hand and just need that one list swept. iykyk. πŸ’œ

and that's the page, bestie β€” drop a πŸ¦‹ for the tt local purge, because she keeps your mesh table from becoming a graveyard of ghost clients.

source: ./net/batman-adv · dated October 2026 ✨

signed off with love from the kernel API manual, section 9 β€” mwah πŸ’‹

πŸ“¦ where this page comes from