batadv_dat_..._arp_request(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… batadv_dat_snoop_outgoing_arp_request(9) β€” the Kernel API Manual moment πŸŽ€

okay so bestie, we're in the kernel API manual today, section 9, and the star of the show is batadv_dat_snoop_outgoing_arp_request β€” say that five times fast, i can't either πŸ’€


✨ NAME ✨

batadv_dat_snoop_outgoing_arp_request β€” she snoops the ARP request and tries to answer using DAT. like, she's nosy but in a helpful way πŸ•΅οΈβ€β™€οΈ


🌸 SYNOPSIS 🌸

bool batadv_dat_snoop_outgoing_arp_request (struct batadv_priv *bat_priv
, struct sk_buff *skb );

πŸŽ€ ARGUMENTS πŸŽ€

  • bat_priv β€” the bat priv with all the mesh interface information πŸ‘‘ she's holding literally everything you need to know about the mesh interface.
  • skb β€” packet to check. yes queen, inspect the packet πŸ”

πŸ¦‹ DESCRIPTION πŸ¦‹

⚠️ Warning, and we're being so serious rn: this function may reallocate the skb data buffer via batadv_dat_get_vid/.... so any pointer into the skb data (e.g. obtained from skb->data or eth_hdr) before this call must be considered invalid afterwards, and has to be reacquired. no cap. if you were holding a pointer from before, it's giving expired. reacquire it or perish πŸ™ˆ

⭐ RETURN ⭐

  • true β€” if the message has been sent to the dht candidates πŸŽ‰
  • false β€” otherwise πŸ’”

and the important bit: in case of a positive return value the message has to be enqueued to permit the fallback. don't skip that step bestie, that's the whole fallback plan 🫢


🌈 SEE ALSO 🌈

Kernel file ./net/batman-adv/distributed-arp-table.c, enum batadv_bootpop(9), enum batadv_boothtype(9), enum batadv_dhcpoptioncode(9), enum batadv_dhcptype(9), struct batadv_dhcp_packet(9), struct batadv_dhcp_header(9), struct batadv_dhcp_option_header(9), batadv_dat_start_timer(9), batadv_dat_entry_release(9), batadv_dat_entry_put(9), batadv_dat_to_purge(9), __batadv_dat_purge(9), batadv_dat_purge(9), batadv_compare_dat(9), batadv_arp_hw_src(9), batadv_arp_ip_src(9), batadv_arp_hw_dst(9), batadv_arp_ip_dst(9), batadv_hash_dat(9), batadv_dat_entry_hash_find(9), batadv_dat_entry_add(9), batadv_dbg_arp(9), batadv_is_orig_node_eligible(9), batadv_choose_next_candidate(9), batadv_dat_select_candidates(9), batadv_dat_forward_data(9), batadv_dat_tvlv_container_update(9), batadv_dat_status_update(9), batadv_dat_tvlv_ogm_handler_v1(9), batadv_dat_hash_free(9), batadv_dat_init(9), batadv_dat_free(9), batadv_dat_cache_dump_entry(9), batadv_dat_cache_dump_bucket(9), batadv_dat_cache_dump(9), batadv_arp_get_type(9), batadv_dat_get_vid(9), batadv_dat_arp_create_reply(9), batadv_dat_snoop_incoming_arp_request(9), batadv_dat_snoop_outgoing_arp_reply(9), batadv_dat_snoop_incoming_arp_reply(9), batadv_dat_check_dhcp_ipudp(9), batadv_dat_check_dhcp(9), batadv_dat_get_dhcp_message_type(9), batadv_dat_dhcp_get_yiaddr(9), batadv_dat_get_dhcp_chaddr(9), batadv_dat_put_dhcp(9), batadv_dat_check_dhcp_ack(9), batadv_dat_snoop_outgoing_dhcp_ack(9), batadv_dat_snoop_incoming_dhcp_ack(9), batadv_dat_drop_broadcast_packet(9)

like… that's the whole friend group fr fr, every single one of them πŸ’œ


and that's the page!! source: ./net/batman-adv, dated October 2026, and the header said batadv_dat_..._arp_request(9) up top in the Kernel API Manual. mwah, go read your skbs responsibly πŸ§šβœ¨πŸ’–

πŸ“¦ where this page comes from