batadv_forw_bcast_packet_if(9)
π batadv_forw_bcast_packet_if β the kernel API manual, but make it make sense π«Ά
okay so bestie, welcome to batadv_forw_bcast_packet_if(9) π this is a page from the Kernel API Manual and it's literally about forwarding and queueing a broadcast packet. yes, that's the whole vibe. let's get into it β¨
β¨ NAME β¨
batadv_forw_bcast_packet_if β forward and queue a broadcast packet π
πΈ SYNOPSIS πΈ
int batadv_forw_bcast_packet_if (struct batadv_priv *bat_priv , struct
sk_buff *skb , unsigned long delay , bool own_packet , struct
batadv_hard_iface *if_in , struct batadv_hard_iface *if_out );
π¦ ARGUMENTS π¦
bat_privβ the bat priv with all the mesh interface information π like, it's holding all the intel, no cap.skbβ the broadcast packet you're adding π this is the actual packet bestie.delayβ number of jiffies to wait before sending β³ yes, jiffies, that's the unit, don't come for me.own_packetβtrueif it's a self-generated broadcast packet π like, a packet that came from you, not from someone else.if_inβ the interface where the packet was received on π where it came in.if_outβ the outgoing interface to forward to π₯ where it's headed.
π DESCRIPTION π
so what it does: it transmits a broadcast packet on the specified interface, either immediately, or β if a delay is given β after that delay β and honestly? that's the whole move. but there's more.
Furthermore, it queues additional retransmissions if this interface is a wireless one π§ mmmhm, wireless interfaces get the extra retransmission treatment.
β οΈ okay this part matters, pay attention: this call clones the givenskb. so the caller needs to take into account that the data segment of the originalskbmight not be modifiable anymore π like, once it's cloned, hands off. don't go editing the original data segment and expect it to just work, because it won't. it's giving "read the docs before you touch it" energy π
π RETURN π
NETDEV_TX_OKon success β slay.NETDEV_TX_BUSYon errors π it's busy, it's going through something.
π SEE ALSO π
Kernel file ./net/batman-adv/send.c β and bestie, here's the whole friend group, we're listing literally all of them:
batadv_send_skb_packet(9)batadv_send_broadcast_skb(9)batadv_send_unicast_skb(9)batadv_send_skb_to_orig(9)batadv_send_skb_push_fill_unicast(9)batadv_send_skb_prepare_unicast(9)batadv_send_skb_prepare_unicast_4addr(9)batadv_send_skb_unicast(9)batadv_send_skb_via_tt_generic(9)batadv_send_skb_via_gw(9)batadv_forw_packet_free(9)batadv_forw_packet_alloc(9)batadv_forw_packet_was_stolen(9)batadv_forw_packet_steal(9)batadv_forw_packet_list_steal(9)batadv_forw_packet_list_free(9)batadv_forw_packet_queue(9)batadv_forw_packet_bcast_queue(9)batadv_forw_packet_ogmv1_queue(9)batadv_forw_bcast_packet_to_list(9)batadv_send_no_broadcast(9)__batadv_forw_bcast_packet(9)batadv_forw_bcast_packet(9)batadv_send_bcast_packet(9)batadv_forw_packet_bcasts_left(9)batadv_forw_packet_bcasts_dec(9)batadv_forw_packet_is_rebroadcast(9)batadv_send_outstanding_bcast_packet(9)batadv_purge_outstanding_packets(9)
that's the page, bestie, you ate that π
mwah π«Ά this little gem lives in ./net/batman-adv, dated October 2026, and it's officially batadv_forw_bcast_packet_if(9) β go forth and forward those broadcasts β¨π
π¦ 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