batadv_iv_ogm_queue_add(9)
π batadv_iv_ogm_queue_add(9) β the Kernel API Manual, bestie edition
okay so you found yourself in the batman-adv section of the kernel API manual, and the function you're staring at is batadv_iv_ogm_queue_add β lowkey the bouncer at the club door of OGM transmissions. It queues up an OGM for transmission. That's it, that's the vibe. β¨
πΈ NAME πΈ
batadv_iv_ogm_queue_add β queue up an OGM for transmission π
π¦ SYNOPSIS π¦
bool batadv_iv_ogm_queue_add (struct batadv_priv *bat_priv , unsigned
char *packet_buff , int packet_len , struct batadv_hard_iface
*if_incoming , struct batadv_hard_iface *if_outgoing , int own_packet ,
unsigned long send_time );
like, yes, it's a bool. she returns something. keep reading. π
β¨ ARGUMENTS β¨
bat_privβ the bat priv with all the mesh interface information π literally the whole personality of the mesh interface lives in herepacket_buffβ pointer to the OGM π«Ά that's your actual packet bestiepacket_lenβ (total) length of the OGM π yes, total, the whole thingif_incomingβ interface where the packet was received π where it came from, the origin storyif_outgoingβ interface for which the retransmission should be considered π¦ i.e. where we're thinking about sending it back outown_packetβ true if it is a self-generated ogm π main character energy: did we make this onesend_timeβ timestamp (jiffies) when the packet is to be sent β° jiffies, not seconds, do not come for me
π₯ RETURN π₯
whether forward packet was scheduled β that's the whole answer, a yes-or-no vibe check on whether the forward packet got scheduled π
π SEE ALSO π
the source of truth, no cap: Kernel file ./net/batman-adv/bat_iv_ogm.c π and then, like, the entire extended friend group:
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_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_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)
okay that's a lot of cross-references but that's literally the whole module's call graph being iconic at you, iykyk π§
and that's the page, bestie!! π this whole thing lives in the kernel tree at ./net/batman-adv, dated October 2026, and it's the batadv_iv_ogm_queue_add(9) page β go queue something, periodt π
π¦ 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