STRUCT BATADV_FORW_PACKET(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐Ÿ’… 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 for batadv_priv.forw.bcast_list and batadv_priv.forw.bat_list. she lists! iconic.
  • cleanup_list โ€” the list node for purging functions. cleanup crew stays winning ๐Ÿงน
  • send_time โ€” the execution time for delayed_work, aka the packet sending moment. the schedule said when, and this is the when โฐ
  • own โ€” a bool for 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, or NULL if 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