batadv_tt_local_valid(9)
π batadv_tt_local_valid β like, the vibe check for your local TT entry π
Okay so bestie, this page is batadv_tt_local_valid(9) from the Kernel API Manual β yes, the whole thing lives in ./net/batman-adv and it's dated October 2026 (we love a future queen β³β¨). Anyway, let's get into it.
β¨ NAME β¨
batadv_tt_local_valid β verify local tt entry and get flags
Like, the actual job description is literally right there. It checks the thing, and it hands you the flags. Two-for-one, slay.
π¦ SYNOPSIS π¦
bool batadv_tt_local_valid (const void *entry_ptr , const void *data_ptr
, u8 *flags );
That's the whole signature. Note the return type is bool β no cap, it's a yes-or-no situation β and the params are two const void * pointers plus a u8 * for the flags. Copy it exactly if you're typing it out, bestie, because const void * is not a suggestion π
π ARGUMENTS π
entry_ptrβ the local tt entry that's, like, getting checked. This is the main character here πdata_ptrβ not used! Like at all! It's only there because the callback prototype requires it. So don't stress about it, it's just filling a seat so the signature works. Fr fr πflagsβ a pointer where the TT flags for this client get stored. It's the output slot, the lil gift bag, the place the answer goes π
πΈ DESCRIPTION πΈ
So what it does: it checks whether the given local TT entry is valid. Checks the validity. That's the whole assignment.
And if it is valid β then the flags pointer you handed it gets updated. So like, valid entry β flags written β everyone's happy π«Ά If it's not valid, no flags for you, and the return value tells you which way it went.
β RETURN β
trueβ the entry is valid πfalseβ otherwise, bestie π
That's the entire return contract. true if the entry is a valid, false otherwise. Simple, iconic, no notes.
Heads up: the original says "true if the entry is a valid, false otherwise" β that's the actual wording, so I'm passing it to you as-is. Don't come for me π
π SEE ALSO π
Okay so this part is long. Like, genuinely long. This function is in ./net/batman-adv/translation-table.c and apparently knows literally everyone at this party. Here's the full guest list, in order, no skips, no cuts β I would never do that to you:
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_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)
One hundred and three. I counted. Okay maybe I didn't count but it's a lot and I listed every single one, periodt π
β¨ (and yes, _batadv_tt_global_del_orig_entry(9), _batadv_is_ap_isolated(9) and _batadv_tt_update_changes(9) keep their leading underscores β do not strip the underscore, bestie, that's a whole different function π€)
Sign-off time, my love π«Ά this page is filed under ./net/batman-adv, stamped October 2026, comes from the Kernel API Manual, and answers to the name batadv_tt_local_valid(9). Go check your entries, stay valid, and hydrate π§π§
π¦ 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