STRUCT BATADV_HARDIF_NEIGH_NODE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct batadv_hardif_neigh_node(9) β€” Kernel API Manual, bestie edition

okay so picture this: it's the Kernel API Manual and we're looking at one struct. One. And she is carrying the whole neighborhood on her back. Her name is struct batadv_hardif_neigh_node, which lowkey is a mouthful, but it literally means unique neighbor per hard-interface and honestly? iconic. πŸŽ€


✨ NAME ✨

struct batadv_hardif_neigh_node β€” unique neighbor per hard-interface πŸ¦‹

🌸 SYNOPSIS 🌸

struct batadv_hardif_neigh_node {
    struct hlist_node list;
    u8 addr[ETH_ALEN];
    u8 orig[ETH_ALEN];
    struct batadv_hard_iface *if_incoming;
    unsigned long last_seen;
  #ifdef CONFIG_BATMAN_ADV_BATMAN_V;
    struct batadv_hardif_neigh_node_bat_v bat_v;
  #endif;
    struct kref refcount;
    struct rcu_head rcu;
 };

like yes bestie, that's the whole glow-up right there ✨

πŸ‘‘ Members πŸ‘‘

  • list β€” the list node for batadv_hard_iface.neigh_list. she's on a list, she's the list girlie 🫢
  • addr β€” the MAC address of the neighboring interface. this is her government name fr fr
  • orig β€” the address of the originator this neighbor node belongs to. iykyk, everyone's got a main character they orbit πŸ’«
  • if_incoming β€” pointer to incoming hard-interface. that's the door she came in through πŸšͺ
  • last_seen β€” when last packet via this neighbor was received. timestamps are literally her love language 😭
  • bat_v β€” B.A.T.M.A.N. V private data. private data?? she's mysterious, she's exclusive, she's giving main character energy πŸ’…
  • refcount β€” number of contexts the object is used. count them, bestie, keep them accurate πŸ‘‘
  • rcu β€” struct used for freeing in a RCU-safe manner. slay, she cleans up responsibly ⭐
no cap, these are all the members β€” nothing skipped, nothing merged, we ate and left no crumbs πŸ“

πŸ’– SEE ALSO πŸ’–

the friend group list β€” genuinely so many besties, every single one of them mentioned, we don't do leaving people out here 🫢 The kernel file in question is ./net/batman-adv/types.h:

  • 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_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_forw_packet(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)

πŸ’€ reminder bestie: this is the kernel API, so treat every field like it's load-bearing. because it is. no vibes-based guessing in here, only facts.

🌈 that's the page!! sign-off time: this one lives in ./net/batman-adv and it's dated October 2026 β€” yes, the future, we're ahead of the timeline, periodt βœ¨πŸ’œ

mwah, go read types.h, ily πŸ’–

πŸ“¦ where this page comes from