batadv_iv_ogm_can_aggregate(9)
π batadv_iv_ogm_can_aggregate β a Kernel API Manual moment
okay so bestie, welcome to the batadv_iv_ogm_can_aggregate(9) page β yes that's the whole title, yes it's a mouthful, we're gonna get through it together π«Ά. Short version: this function checks whether a new OGM packet can ride along inside an OGM packet that's already queued up to be forwarded.
β¨ NAME β¨
batadv_iv_ogm_can_aggregate β literally just find out if an OGM can be aggregated onto an existing forward packet π«
πΈ SYNOPSIS πΈ
bool batadv_iv_ogm_can_aggregate (const struct batadv_ogm_packet
*new_bat_ogm_packet , struct batadv_priv *bat_priv , int packet_len ,
unsigned long send_time , bool directlink , const struct
batadv_hard_iface *if_incoming , const struct batadv_hard_iface
*if_outgoing , const struct batadv_forw_packet *forw_packet );
it returns a bool, it takes eight whole arguments, and it is the moment π
π ARGUMENTS π
new_bat_ogm_packetβ the OGM packet that's hoping to get aggregated. it's the new kid, the one applying for the group project π¦bat_privβ the bat priv holding all the mesh interface info. it knows everything, it's giving main character energy πpacket_lenβ the (total) length of the OGM. the total, bestie, the whole thing β¨send_timeβ timestamp in jiffies for when the packet is supposed to be sent. jiffies!! not seconds!! πdirectlinkβtrueif this is a direct link packet. no cap, that's what it means πif_incomingβ the interface where the packet was received. where it came from πΈif_outgoingβ the interface the retransmission should be considered for. where it's headed π§forw_packetβ the forwarded packet that should be checked. the existing one, the one we're tryna join π
π₯ RETURN π₯
it returns true if new_packet can be aggregated with forw_packet. that's it, that's the whole deal β true or false, slay or nay π
β SEE ALSO β
like, the entire rest of the neighborhood, fr fr:
- 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_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)
ngl, that's a LOT of cross-references. read them all, iykyk ππ
pink flag moment: this page lives under <pink>./net/batman-adv</pink>, datestamped October 2026, and it's filed as batadv_iv_ogm_can_aggregate(9). that's the version-and-date sign-off, bestie β go aggregate something iconic πβ¨π
π¦ 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