STRUCT BATADV_FORW_PACKET(9)
๐ struct batadv_forw_packet(9) ๐
okay so bestie, welcome to the Kernel API Manual โ yes that's the manual name, and yes it's as serious as it sounds, but we're gonna make it cute. this is the page about struct batadv_forw_packet, and it is literally the structure for bcast packets to be sent/forwarded. main character struct energy, no cap. ๐ฆ
โจ NAME โจ
struct batadv_forw_packet โ the structure for bcast packets to be sent/forwarded. that's it, that's the vibe. ๐
๐ธ SYNOPSIS ๐ธ
here's the whole thing, verbatim, because we do not paraphrase code in this house:
struct batadv_forw_packet {
struct hlist_node list;
struct hlist_node cleanup_list;
unsigned long send_time;
u8 own;
struct sk_buff *skb;
u16 packet_len;
unsigned long direct_link_flags[BITS_TO_LONGS(
BATADV_MAX_AGGREGATION_PACKETS)];
u8 num_packets;
struct delayed_work delayed_work;
struct batadv_hard_iface *if_incoming;
struct batadv_hard_iface *if_outgoing;
atomic_t *queue_left;
};
like... look at her. she's got twelve members and every single one is doing something. served. ๐
๐ Members ๐
bestie take notes, we're going member by member, no skips, no "eh I'll read the rest later" โ i will quiz you ๐ญ
listโ the list node forbatadv_priv.forw.bcast_listandbatadv_priv.forw.bat_list. she lists! iconic.cleanup_listโ the list node for purging functions. cleanup crew stays winning ๐งนsend_timeโ the execution time fordelayed_work, aka the packet sending moment. the schedule said when, and this is the when โฐownโ aboolfor locally generated packets. and lowkey a whole personality trait: local OGMs are re-scheduled after sending. she's self-sufficient ๐ซถskbโ the bcast packet's skb buffer. the actual goods, the payload, the ~content~ ๐ฆpacket_lenโ size of aggregated OGM packet inside the skb buffer. measured, precise, obsessed ๐ฅdirect_link_flagsโ direct link flags for aggregated OGM packets. flags! for the direct links! she's flagging ๐ฉnum_packetsโ counter for aggregated OGMv1 packets. literally keeping count, ngl it's giving accountant but make it mesh ๐งฎdelayed_workโ work queue callback item for packet sending. the callback! the work queue! the delayed part is doing heavy lifting โญif_incomingโ pointer to incoming hard-iface, or the primary iface if the packet is locally generated. she remembers where she came from ๐if_outgoingโ the packet where the packet should be sent to, orNULLif unspecified. sometimes she just doesn't know where she's going and honestly? relatable ๐queue_leftโ The queue (counter) this packet was applied to. yes capital "The" in the original, yes I'm keeping it, periodt ๐
๐ SEE ALSO ๐
okay this is the long one. the whole batman-adv cinematic universe shows up here, so buckle up bestie, we're listing every single one ๐
kernel file ./net/batman-adv/types.h plus:
batadv_dat_addr_t(9)enum batadv_dhcp_recipient(9)BATADV_TT_REMOTE_MASK(9)BATADV_TT_SYNC_MASK(9)struct batadv_ogm_buf(9)struct batadv_hard_iface_bat_iv(9)enum batadv_v_hard_iface_flags(9)struct batadv_hard_iface_bat_v(9)enum batadv_hard_iface_wifi_flags(9)struct batadv_wifi_net_device_state(9)struct batadv_hard_iface(9)struct batadv_orig_ifinfo_bat_iv(9)struct batadv_orig_ifinfo(9)struct batadv_frag_table_entry(9)struct batadv_frag_list_entry(9)struct batadv_vlan_tt(9)struct batadv_orig_node_vlan(9)struct batadv_orig_bat_iv(9)struct batadv_orig_node(9)enum batadv_orig_capabilities(9)struct batadv_gw_node(9)struct batadv_hardif_neigh_node_bat_v(9)struct batadv_hardif_neigh_node(9)struct batadv_neigh_node(9)struct batadv_neigh_ifinfo_bat_iv(9)struct batadv_neigh_ifinfo_bat_v(9)struct batadv_neigh_ifinfo(9)struct batadv_bcast_duplist_entry(9)enum batadv_counters(9)struct batadv_priv_tt(9)struct batadv_priv_bla(9)struct batadv_priv_gw(9)struct batadv_priv_tvlv(9)struct batadv_priv_dat(9)struct batadv_mcast_querier_state(9)struct batadv_mcast_mla_flags(9)struct batadv_priv_mcast(9)struct batadv_tp_unacked(9)struct batadv_tp_vars_common(9)struct batadv_tp_sender_cc(9)struct batadv_tp_sender(9)struct batadv_tp_receiver(9)struct batadv_meshif_vlan(9)struct batadv_priv_bat_v(9)struct batadv_priv(9)enum batadv_bla_backbone_gw_state(9)struct batadv_bla_backbone_gw(9)struct batadv_bla_claim(9)struct batadv_tt_common_entry(9)struct batadv_tt_local_entry(9)struct batadv_tt_global_entry(9)struct batadv_tt_orig_list_entry(9)struct batadv_tt_change_node(9)struct batadv_tt_req_node(9)struct batadv_tt_roam_node(9)struct batadv_skb_cb(9)struct batadv_algo_iface_ops(9)struct batadv_algo_neigh_ops(9)struct batadv_algo_orig_ops(9)struct batadv_algo_gw_ops(9)struct batadv_algo_ops(9)struct batadv_dat_entry(9)struct batadv_hw_addr(9)struct batadv_dat_candidate(9)struct batadv_tvlv_container(9)struct batadv_tvlv_handler(9)enum batadv_tvlv_handler_flags(9)
see? told you. sixty-something entries. ate and left no crumbs ๐โจ
annnnd scene! ๐ฌ this lil page lives at ./net/batman-adv and it's serving October 2026 energy โ so when you cite it, cite it correctly, bestie. mwah ๐๐ฆ
๐ฆ 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