batadv_iv_ogm_orig_update(9)
π batadv_iv_ogm_orig_update π
okay bestie, welcome to the batadv_iv_ogm_orig_update(9) page β it lives in the Kernel API Manual and it's literally all about what happens when you use an OGM to update the corresponding data in an originator. yep. that's the whole vibe. π¦
β¨ NAME β¨
batadv_iv_ogm_orig_update β use OGM to update corresponding data in an originator
πΈ SYNOPSIS πΈ
void batadv_iv_ogm_orig_update (struct batadv_priv *bat_priv , struct
batadv_orig_node *orig_node , struct batadv_orig_ifinfo *orig_ifinfo ,
const struct ethhdr *ethhdr , const struct batadv_ogm_packet
*batadv_ogm_packet , struct batadv_hard_iface *if_incoming , struct
batadv_hard_iface *if_outgoing , enum batadv_dup_status dup_status );
no cap, that's a lot of parameters. it's giving "my function takes eight arguments and knows what each one does" energy π
π ARGUMENTS π
bat_privβ the bat priv with all the mesh interface information. like, every single mesh interface deet lives in here πorig_nodeβ the orig node who originally emitted the ogm packet. the main character of this whole situation, fr.orig_ifinfoβ ifinfo for the outgoing interface of theorig_node. yes, specifically the outgoing one π«Άethhdrβ Ethernet header of the OGM. the classic packet accessory, we love her.batadv_ogm_packetβ the ogm packet itself. the moment. the icon. βif_incomingβ interface where the packet was received. the "where did you come from" one πif_outgoingβ interface for which the retransmission should be considered. lowkey different from the incoming one, don't mix them up π§dup_statusβ the duplicate status of this ogm packet. and that's with a whole period at the end, because the original said so π
π¦ SEE ALSO π¦
okay so this page is generous with the cross-references, and we are NOT skipping a single one. drill down into the kernel file ./net/batman-adv/bat_iv_ogm.c and honestly just read everything, bestie:
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_calc_tq(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)
π that's genuinely the whole page, bestie β no hidden sections, no secret extra flags. what you see is what you get. iykyk.
okay and before you go β this whole thing lives under ./net/batman-adv, dated October 2026, in the Kernel API Manual. mwah, go read some bat_iv_ogm.c ππ
π¦ 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