batadv_iv_ogm_calc_tq(9)
π batadv_iv_ogm_calc_tq β¨
okay so bestie, welcome to the batadv_iv_ogm_calc_tq(9) page from the Kernel API Manual β like, the kernel API manual, not the regular one, keep up π«Ά. This one's a whole function, and it is literally the vibe check for your OGM packets. let's get into it β¨
πΈ NAME πΈ
batadv_iv_ogm_calc_tq β calculate tq for current received ogm packet π
that's it, that's the whole name. tq stands for transmit quality btw (iykyk), and this function is out here computing it for the ogm packet you just received. no cap. π¦
π SYNOPSIS π
okay here's the signature, copied exactly because I do not play about signatures π€
bool batadv_iv_ogm_calc_tq (struct batadv_orig_node *orig_node , struct
batadv_orig_node *orig_neigh_node , struct batadv_ogm_packet
*batadv_ogm_packet , struct batadv_hard_iface *if_incoming , struct
batadv_hard_iface *if_outgoing );
returns a bool, takes five pointers. five. she's high maintenance and honestly? iconic π
π ARGUMENTS π
every single one, bestie, in order, no skips π
orig_nodeβ the orig node who originally emitted the ogm packet π like the actual origin of the whole thing, the main character of this packet's story.orig_neigh_nodeβ the orig node struct of the neighbor who sent the packet π«Ά lowkey the difference between these two is everything: one emitted it, the other sent it to you. two different nodes, two different jobs.batadv_ogm_packetβ the ogm packet π¦ the actual packet, the payload, the reason we're all here.if_incomingβ interface where the packet was received π the door it came through.if_outgoingβ interface for which the retransmission should be considered π₯ the door it would go back out of. yes, it's a whole thing.
β RETURN β
trueβ if the link can be considered bidirectional β¨ slay, the link goes both ways, we love a mutual situation πfalseβ otherwise π not bidirectional, not today.
π SEE ALSO π
okay this list is long long, but I promised I wouldn't skip anything, so buckle up bestie, we're going through all of it π§
- Kernel file
./net/batman-adv/bat_iv_ogm.c enum batadv_dup_status(9)batadv_ring_buffer_set(9)batadv_ring_buffer_avg(9)batadv_iv_ogm_orig_get(9)batadv_iv_ogm_neigh_new(9)batadv_iv_ogm_iface_enable(9)batadv_iv_ogm_iface_disable(9)batadv_iv_ogm_iface_update_mac(9)batadv_iv_ogm_primary_iface_set(9)batadv_iv_ogm_emit_send_time(9)batadv_iv_ogm_fwd_send_time(9)batadv_hop_penalty(9)batadv_iv_ogm_aggr_packet(9)batadv_iv_ogm_send_to_if(9)batadv_iv_ogm_emit(9)batadv_iv_ogm_can_aggregate(9)batadv_iv_ogm_aggregate_new(9)batadv_iv_ogm_aggregate(9)batadv_iv_ogm_queue_add(9)batadv_iv_ogm_forward(9)batadv_iv_ogm_slide_own_bcast_window(9)batadv_iv_ogm_schedule_buff(9)batadv_iv_ogm_schedule(9)batadv_iv_ogm_reschedule(9)batadv_iv_orig_ifinfo_sum(9)batadv_iv_ogm_neigh_ifinfo_sum(9)batadv_iv_ogm_orig_update(9)batadv_iv_ogm_update_seqnos(9)batadv_orig_to_direct_router(9)batadv_iv_ogm_process_per_outif(9)batadv_iv_ogm_process_reply(9)batadv_iv_ogm_process(9)batadv_iv_send_outstanding_bat_ogm_packet(9)batadv_iv_ogm_receive(9)batadv_iv_ogm_neigh_get_tq_avg(9)batadv_iv_ogm_orig_dump_subentry(9)batadv_iv_ogm_orig_dump_entry(9)batadv_iv_ogm_orig_dump_bucket(9)batadv_iv_ogm_orig_dump(9)batadv_iv_ogm_neigh_diff(9)batadv_iv_ogm_neigh_dump_neigh(9)batadv_iv_ogm_neigh_dump_hardif(9)batadv_iv_ogm_neigh_dump(9)batadv_iv_ogm_neigh_cmp(9)batadv_iv_ogm_neigh_is_sob(9)batadv_iv_iface_enabled(9)batadv_iv_init_sel_class(9)batadv_iv_gw_get_best_gw_node(9)batadv_iv_gw_is_eligible(9)batadv_iv_gw_dump_entry(9)batadv_iv_gw_dump(9)batadv_iv_init(9)batadv_iv_deinit(9)
see? all of them. every single one. I told you I wasn't gonna do you dirty π β¨
that's the whole page bestie, go forth and calculate some tq π¦π
this lil masterpiece lives in ./net/batman-adv and it's dated October 2026 β yes, the future, she's ahead of her time πβ¨ mwah, ily, bye π«Ά
π¦ 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