batadv_arp_hw_dst(9)
π batadv_arp_hw_dst β the kernel API manual, bestie edition π
okay so this is a page from the Kernel API Manual, and the function we're stanning today is batadv_arp_hw_dst(9). it's a tiny little icon living in ./net/batman-adv/distributed-arp-table.c and it does exactly one (1) job. main character energy, honestly.
β¨ NAME β¨
batadv_arp_hw_dst β extract the hw_dst field from an ARP packet π«Ά
like, that's the whole vibe. it reaches into an ARP packet and pulls out the hardware destination field. no cap.
πΈ SYNOPSIS πΈ
u8 * batadv_arp_hw_dst (struct sk_buff *skb , int hdr_size );
that's the signature, copied exactly, don't come for me π
π¦ ARGUMENTS π¦
skbβ the ARP packet itself, babes. this is the buffer we're snooping through πhdr_sizeβ the size of whatever possible header sits before the ARP packet. so like, the offset we gotta skip past to find the actual ARP bits. lowkey important, don't skip it β¨
β RETURN β
it hands you back the value of the hw_dst field in the ARP packet. that's it. that's the return. a u8 * pointing at the goods π
ngl there's no error path listed here β the page just says you get the value of hw_dst. so don't be out here inventing failure modes, bestie π
π SEE ALSO π
literally the entire batman-adv phonebook, fr fr. first up it name-drops the kernel file and an enum:
./net/batman-adv/distributed-arp-table.c and enum
then all of these cuties:
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_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_outgoing_arp_request(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)
okay that's a lot of friends but they're all valid, i checked π go read them, iykyk.
and that's the page!! πβ¨π huge shoutout to the source ./net/batman-adv and this lil snapshot dated October 2026 β mwah, love u, bye bestie π¦ππ
π¦ 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