batadv_v_ogm_metric_update(9)
π batadv_v_ogm_metric_update β the kernel API manual, but make it make sense
okay so bestie, we're in the batadv_v_ogm_metric_update(9) page today β yes that's the manual name, yes it's a mouthful, no we're not shortening it. This one lives in the Kernel API Manual and it's literally all about updating the route metric based on OGM. That's the whole vibe. π¦
β¨ SYNOPSIS β¨
int batadv_v_ogm_metric_update (struct batadv_priv *bat_priv , const
struct batadv_ogm2_packet *ogm2 , struct batadv_orig_node *orig_node ,
struct batadv_neigh_node *neigh_node , struct batadv_hard_iface
*if_incoming , struct batadv_hard_iface *if_outgoing );
six arguments, one int coming back at you. she's serving function signature realness, no cap. π
π ARGUMENTS π
bat_privβ the bat priv that's holding all the mesh interface information. the main character of the struct collection, fr.ogm2β the OGM2 structure. that's it, that's the description, it's very lowkey about itself.orig_nodeβ the Originator structure for which the OGM has been received. iykyk.neigh_nodeβ the neigh_node through which the OGM has been received. the middleman. the messenger. respect her.if_incomingβ the interface where this packet was received. where it showed up. where it ate. πif_outgoingβ the interface for which the packet should be considered. not the same as incoming, bestie, don't mix them up π
π RETURN π
three possible moods:
1β if the OGM is new. fresh off the wire. iconic. β¨0β if it is not new but valid. not new, still valid, still slaying in her own way π<0β on error, e.g. an old OGM. yeah, that's a no from her π
πΈ SEE ALSO πΈ
the kernel file is ./net/batman-adv/bat_v_ogm.c and honestly the whole friend group is here β every single one of these, no skipping:
batadv_v_ogm_orig_get(9)batadv_v_ogm_start_queue_timer(9)batadv_v_ogm_start_timer(9)batadv_v_ogm_send_to_if(9)batadv_v_ogm_len(9)batadv_v_ogm_queue_left(9)batadv_v_ogm_aggr_list_free(9)batadv_v_ogm_aggr_send(9)batadv_v_ogm_queue_on_if(9)batadv_v_ogm_send_meshif(9)batadv_v_ogm_send(9)batadv_v_ogm_aggr_work(9)batadv_v_ogm_iface_enable(9)batadv_v_ogm_iface_disable(9)batadv_v_ogm_primary_iface_set(9)batadv_v_forward_penalty(9)batadv_v_ogm_forward(9)batadv_v_ogm_route_update(9)batadv_v_ogm_process_per_outif(9)batadv_v_ogm_aggr_packet(9)batadv_v_ogm_process(9)batadv_v_ogm_packet_recv(9)batadv_v_ogm_init(9)batadv_v_ogm_free(9)
twenty-four whole references. she keeps her circle close and her (9) suffixes closer π«Ά
ngl this page is short but she's doing exactly what she needs to do. read the args, respect the args, move on. periodt. π
and that's the tea, bestie β this one came from ./net/batman-adv, dated October 2026, and it's signed off as batadv_v_ogm_metric_update(9). go forth and update those metrics π§ββοΈβ
π¦ 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