batadv_tp_send_msg(9)
π 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
- 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