batadv_tp_send_msg(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’Œ batadv_tp_send_msg(9) β€” the "send one single message" girlies' guide πŸ’Œ

Okay bestie, this is a page from the Kernel API Manual, and we're about to get so into it. This is batadv_tp_send_msg, and yes she is exactly what she sounds like: she sends a single message. One. Uno. Not a batch, not a stream β€” one lil message. Slay. πŸŽ€


✨ SYNOPSIS ✨

int batadv_tp_send_msg (struct batadv_tp_sender *tp_vars , const u8 *src
, struct batadv_orig_node *orig_node , u32 seqno , size_t len , const u8
*session , int uid , u32 timestamp );

Like, look at her. Eight arguments, forehead kiss, returning an int. Main character energy fr fr. 😌


🌸 ARGUMENTS 🌸

  • tp_vars β€” the private TP meter data for this session πŸ‘‘. Her own personal little world of bookkeeping, and we respect her privacy.
  • src β€” the source MAC address. Where the message is coming from, iykyk πŸ’…
  • orig_node β€” the originator of the destination. Basically the "who's getting this" node, and we're obsessed with her.
  • seqno β€” sequence number of this packet. She's numbered, she's tracked, she's got a place in the lineup πŸ”’βœ¨
  • len β€” length of the entire packet. The whole thing, ngl. Not just the important bits.
  • session β€” the session identifier. Which session bestie are we in? This one. 🫢
  • uid β€” local ICMP "socket" index. Note the quotes around "socket" β€” those are the original author's quotes, not mine, and I would never disrespect them by removing them πŸ™ˆ
  • timestamp β€” timestamp in jiffies which is replied in ack. Like, she carries a timestamp so the ack can hand it right back. Clock behavior, honestly πŸ’€

πŸ’– DESCRIPTION πŸ’–

Create and send a single TP Meter message. That's it, that's the whole vibe β€” creation plus transmission, one message, no notes. πŸ¦‹


⭐ RETURN ⭐

  • 0 β€” success! we love her! πŸŽ‰
  • BATADV_TP_REASON_MEMORY_ERROR β€” the packet couldn't be allocated. Rude. Memory said no. 😭
  • BATADV_TP_REASON_CANT_SEND β€” the packet could not be transmitted. She was built but she never left the house. πŸ’€

🌈 SEE ALSO 🌈

Okay so sticky note moment, because the original drops a whole friend group here β€” the kernel file ./net/batman-adv/tp_meter.c plus a massive crew of related pages, and we do not leave a single one out, periodt:

BATADV_TP_DEF_TEST_LENGTH(9), BATADV_TP_AWND(9), BATADV_TP_RECV_TIMEOUT(9), BATADV_TP_MAX_RTO(9), BATADV_TP_FIRST_SEQ(9), BATADV_TP_PLEN(9), BATADV_TP_MAX_UNACKED(9), batadv_tp_session_cookie(9), batadv_tp_cwnd(9), batadv_tp_update_cwnd(9), batadv_tp_update_rto(9), batadv_tp_batctl_notify(9), batadv_tp_batctl_error_notify(9), batadv_tp_list_find_sender(9), batadv_tp_list_active(9), batadv_tp_list_find_sender_session(9), batadv_tp_sender_release(9), batadv_tp_sender_put(9), batadv_tp_list_detach(9), batadv_tp_sender_cleanup(9), batadv_tp_sender_end(9), batadv_tp_sender_shutdown(9), batadv_tp_sender_stopped(9), batadv_tp_sender_finish(9), batadv_tp_reset_sender_timer(9), batadv_tp_sender_timeout(9), batadv_tp_fill_prerandom(9), enum batadv_tp_ack_reaction(9), batadv_tp_handle_ack(9), batadv_tp_recv_ack(9), batadv_tp_avail(9), batadv_tp_wait_available(9), batadv_tp_send(9), batadv_tp_start_kthread(9), batadv_tp_start(9), batadv_tp_stop(9), batadv_tp_list_find_receiver_session(9), batadv_tp_receiver_release(9), batadv_tp_receiver_put(9), batadv_tp_reset_receiver_timer(9), batadv_tp_receiver_shutdown(9), batadv_tp_send_ack(9), batadv_tp_handle_out_of_order(9), batadv_tp_ack_unordered(9), batadv_tp_init_recv(9), batadv_tp_recv_msg(9), batadv_tp_meter_recv(9), batadv_tp_stop_all(9), batadv_tp_meter_init(9).

Not me listing all of them. (I did. I would again. πŸ’…)

That's the whole page, bestie β€” every flag, every arg, every return code, every last SEE ALSO, preserved with love and zero cap. 🧚

Signed off from ./net/batman-adv, dated October 2026, and yes this manual page's full glow-up name is batadv_tp_send_msg(9) β€” mwah, love u, go send exactly one message πŸ’œπŸŒΈ

πŸ“¦ where this page comes from