batadv_iv_ogm_send_to_if(9)
π batadv_iv_ogm_send_to_if β like, the Kernel API Manual page, bestie β¨
okay so picture this: we're deep in the batman-adv kernel docs, and this lil function is the one that literally yeets a batman OGM out the door onto an interface. it's a (9) manpage, it lives in ./net/batman-adv/bat_iv_ogm.c, and honestly? iconic. let's get into it π
β¨ NAME β¨
batadv_iv_ogm_send_to_if β send a batman OGM to a given interface π
no cap, that's the whole vibe: one OGM packet, one interface, one transmission. slay.
πΈ SYNOPSIS πΈ
void batadv_iv_ogm_send_to_if (struct batadv_forw_packet *forw_packet ,
struct batadv_hard_iface *hard_iface );
it returns void, so there's literally nothing to check afterwards, it just does the thing π«Ά
π¦ ARGUMENTS π¦
forw_packetβ the forward packet, and it's the one holding the OGM(s) that are about to be transmitted β¨hard_ifaceβ the interface the OGM is getting sent out on π§
π DESCRIPTION π
okay so here's the little routine, step by step, because the way that it does three things in a row is lowkey gorgeous:
- it updates the direct link flags of each aggregated OGM for the outgoing interface π
- then it logs the transmission (yes, there's a log, it's giving observability)
- and finally it hands a clone of the skb down to the lower layer so it can get broadcast out into the world π
clone the skb, pass it down, broadcast. that's it. that's the whole function. periodt π
π SEE ALSO π
the whole friend group, fr fr β go read these too:
- 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_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_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)
and that's the page, bestie!! it came from ./net/batman-adv, dated October 2026, and it's filed under batadv_iv_ogm_send_to_if(9) β go touch some skbs, ily ππ¦β¨
π¦ 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