batadv_iv_s...t_ogm_packet(9)
π batadv_iv_send_outstanding_bat_ogm_packet(9) β the Kernel API Manual, bestie edition π
okay so this is a page straight out of the Kernel API Manual, and the function is literally called batadv_iv_send_outstanding_bat_ogm_packet β yes it's a mouthful, no we're not shortening it, it's iconic and it knows it. π¦
β¨ NAME β¨
batadv_iv_send_outstanding_bat_ogm_packet β a work-queue helper that goes and emits a queued forward packet. that's the whole vibe. it's the little worker bee that actually ships the packet you queued up earlier. π
πΈ SYNOPSIS πΈ
void batadv_iv_send_outstanding_bat_ogm_packet (struct work_struct *work
);
no cap, that's the whole signature β takes one pointer, returns void, zero drama. π
π«Ά ARGUMENTS π«Ά
workβ the work item that's embedded in the forward packet. so like, the packet is carrying its own little to-do note, and this pointer is you grabbing that note. it's giving "the assignment was inside you all along" π
π₯ DESCRIPTION π₯
So what actually happens when this thing gets called? Two things, and they're both important:
- it emits the queued OGM forward packet β the packet finally gets to go outside, we love that for it β¨
- and if the packet belongs to one of the own primary-interface packets, it also schedules the next periodic OGM. so the chain keeps going, the timer stays alive, main character energy fr fr π
and then β after all that β the forward packet is freed afterwards. it did its job, it's released, we say thank you for your service π«‘π
ngl, the freeing part is not optional and not cute to ignore. the packet gets freed. periodt.
π SEE ALSO π
the whole batman-adv fam, all listed out, and yes every single one of them matters iykyk:
- the 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_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_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)
and that's the page!! π it comes from ./net/batman-adv, dated October 2026, and if you ever need to find it again it lives under the name batadv_iv_s...t_ogm_packet(9) π slay, go emit your packets bestie β
π¦ 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