batadv_arp_get_type(9)
π NAME π
batadv_arp_get_type β bestie, this one parses an ARP packet and hands you back its type β¨
Oh and hiiii, quick vibe check before we dive in: this is batadv_arp_get_type(9), straight out of section 9 of the Kernel API Manual. She's a kernel function, she's lowkey iconic, let's get into it π
πΈ SYNOPSIS πΈ
u16 batadv_arp_get_type (struct batadv_priv *bat_priv , struct sk_buff *skb , int hdr_size );
π¦ ARGUMENTS π¦
bat_privβ the bat priv, aka the main character that's holding all the mesh interface information πskbβ the packet we're analysing, our little subject under the microscope πhdr_sizeβ the size of whatever header might be chilling in front of the ARP packet inside theskbπ
β¨ DESCRIPTION β¨
β οΈ Warning, bestie, read this part twice: this function may reallocate theskbdata buffer viapskb_may_pull/... (pskb_may_pulland friends, iykyk).
Okay so what that means is: any pointer into the skb data β like one you got from skb->data or from eth_hdr β that you were holding before this call? Consider it invalid the moment you come back. Gone. Expired. Not it. π You have to reacquire it, no cap. Do not hold onto the old pointer and act like nothing happened, that's giving undefined-behaviour main character energy and we do not stan π
π RETURN π
Returns the ARP type if the skb actually contains a valid ARP packet β and 0 otherwise π«Ά
π SEE ALSO π
Kernel file ./net/batman-adv/distributed-arp-table.c plus the whole squad:
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_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)
and that's the whole page, bestie!! go parse those ARP packets responsibly, reacquire your pointers, and remember: the data buffer might have moved. love u, bye ππ§ββοΈ
mwah π β sourced from ./net/batman-adv, dated October 2026, and yes that's the same batadv_arp_get_type(9) we've been screaming about this whole time π
π¦ 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