batadv_send_skb_unicast(9)
π batadv_send_skb_unicast(9)
okay so bestie, welcome to the Kernel API Manual β yes, the actual kernel API manual, and yes we're gonna get through this together. this one's called batadv_send_skb_unicast, and the whole ~vibe~ is: you've got a packet, you wrap it up all cute in a batman-adv header, and you yeet it at exactly one originator. no broadcasting, no drama, just one (1) destination. iykyk β¨
πΈ NAME πΈ
batadv_send_skb_unicast β encapsulate and send an skb via unicast π
like, that's it. that's the whole job. wrap it, then send it. to one person. slay.
β¨ SYNOPSIS β¨
int batadv_send_skb_unicast (struct batadv_priv *bat_priv , struct
sk_buff *skb , int packet_type , int packet_subtype , struct
batadv_orig_node *orig_node , unsigned short vid );
six arguments, one int coming back at you. no cap, that's the whole signature π
π¦ ARGUMENTS π¦
bat_privβ the bat priv π« this is the one holding all the mesh interface information, so like, everything you need to know about the mesh lives in here.skbβ the payload to send π your precious little packet, before it gets dressed up.packet_typeβ the batman unicast packet type to use π this is the one that picks your whole outfit for the evening.packet_subtypeβ the unicast 4addr packet subtype π and bestie, listen: this is only relevant for unicast 4addr packets. if you're not doing 4addr, it's just sitting there vibing.orig_nodeβ the originator to send the packet to π«Ά your one and only destination. main character energy, honestly.vidβ the vid to be used to search the translation table π that's the VLAN id, and it's what you go looking through the translation table with.
π DESCRIPTION π
okay here's the tea, fr fr:
this function wraps the given skb into a batman-adv unicast header or a unicast-4addr header β which one you get depends entirely on whether BATADV_UNICAST or BATADV_UNICAST_4ADDR was supplied as the packet_type. then it sends this frame to the given orig_node. π
literally "dress the packet appropriately, then mail it to the one originator you were told about." iconic behaviour, no notes.
β RETURN β
NET_XMIT_DROPβ when something went wrong π (error case)NET_XMIT_SUCCESSβ when it all worked out π (otherwise)
so like, check it. don't just assume success. vibe check your return value, bestie.
π₯ SEE ALSO π₯
a whole friend group of related functions, and ngl, this list is long. but every single one of them matters, so here we go β kernel file ./net/batman-adv/send.c and friends:
batadv_send_skb_packet(9)batadv_send_broadcast_skb(9)batadv_send_unicast_skb(9)batadv_send_skb_to_orig(9)batadv_send_skb_push_fill_unicast(9)batadv_send_skb_prepare_unicast(9)batadv_send_skb_prepare_unicast_4addr(9)batadv_send_skb_via_tt_generic(9)batadv_send_skb_via_gw(9)batadv_forw_packet_free(9)batadv_forw_packet_alloc(9)batadv_forw_packet_was_stolen(9)batadv_forw_packet_steal(9)batadv_forw_packet_list_steal(9)batadv_forw_packet_list_free(9)batadv_forw_packet_queue(9)batadv_forw_packet_bcast_queue(9)batadv_forw_packet_ogmv1_queue(9)batadv_forw_bcast_packet_to_list(9)batadv_forw_bcast_packet_if(9)batadv_send_no_broadcast(9)__batadv_forw_bcast_packet(9)batadv_forw_bcast_packet(9)batadv_send_bcast_packet(9)batadv_forw_packet_bcasts_left(9)batadv_forw_packet_bcasts_dec(9)batadv_forw_packet_is_rebroadcast(9)batadv_send_outstanding_bcast_packet(9)batadv_purge_outstanding_packets(9)
go read them. all of them. okay maybe not all at once π
and that's the page, bestie! π§β¨ this lil manual moment came to you from ./net/batman-adv, dated October 2026, and it's filed under batadv_send_skb_unicast(9) β mwah, go send some unicast packets responsibly π
π
π¦ 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