STRUCT TIPC_LINK(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

okay so bestie, this is the struct tipc_link(9) page from the Kernel API Manual, and it's literally all about the TIPC link data structure. no cap, it's giving β€œone struct to hold the whole link vibe.” πŸ’–

struct tipc_link β€” TIPC link data structure ✨


🌸 SYNOPSIS 🌸

struct tipc_link {
    u32 addr;
    char name[TIPC_MAX_LINK_NAME];
    struct net *net;
    u16 peer_session;
    u16 session;
    u16 snd_nxt_state;
    u16 rcv_nxt_state;
    u32 peer_bearer_id;
    u32 bearer_id;
    u32 tolerance;
    u32 abort_limit;
    u32 state;
    u16 peer_caps;
    bool in_session;
    bool active;
    u32 silent_intv_cnt;
    char if_name[TIPC_MAX_IF_NAME];
    u32 priority;
    char net_plane;
    struct tipc_mon_state mon_state;
    u16 rst_cnt;
    u16 drop_point;
    struct sk_buff *failover_reasm_skb;
    struct sk_buff_head failover_deferdq;
    u16 mtu;
    u16 advertised_mtu;
    struct sk_buff_head transmq;
    struct sk_buff_head backlogq;
    struct {
      u16 len;
      u16 limit;
      struct sk_buff *target_bskb;
    } backlog[5];
    u16 snd_nxt;
    u16 rcv_nxt;
    u32 rcv_unacked;
    struct sk_buff_head deferdq;
    struct sk_buff_head *inputq;
    struct sk_buff_head *namedq;
    struct sk_buff_head wakeupq;
    u16 window;
    u16 min_win;
    u16 ssthresh;
    u16 max_win;
    u16 cong_acks;
    u16 checkpoint;
    struct sk_buff *reasm_buf;
    struct sk_buff *reasm_tnlmsg;
    u16 ackers;
    u16 acked;
    u16 last_gap;
    struct tipc_gap_ack_blks *last_ga;
    struct tipc_link *bc_rcvlink;
    struct tipc_link *bc_sndlink;
    u8 nack_state;
    bool bc_peer_is_up;
    struct tipc_stats stats;
};

🫢 Members 🫢

okay, deep breath, because this is the member-by-member tour and we're not skipping a single one. periodt. πŸ’…

  • addr β€” network address of link's peer node πŸ‘‘
  • name β€” link name character string πŸŽ€
  • net β€” pointer to namespace struct πŸ¦‹
  • peer_session β€” link session # being used by peer end of link ✨
  • session β€” session to be used by link πŸ’–
  • snd_nxt_state β€” next send seq number 🌸
  • rcv_nxt_state β€” next rcv seq number 🌈
  • peer_bearer_id β€” bearer id used by link's peer endpoint 🫢
  • bearer_id β€” local bearer id used by link πŸ’…
  • tolerance β€” minimum link continuity loss needed to reset link [in ms] πŸ”₯
  • abort_limit β€” # of unacknowledged continuity probes needed to reset link πŸ’€
  • state β€” current state of link FSM ⭐
  • peer_caps β€” bitmap describing capabilities of peer node 🧚
  • in_session β€” have received ACTIVATE_MSG from peer πŸ’Œ
  • active β€” link is active βœ…
  • silent_intv_cnt β€” # of timer intervals without any reception from peer 😭
  • if_name β€” associated interface name πŸ“
  • priority β€” current link priority πŸ‘‘
  • net_plane β€” current link network plane ('A' through 'H') 🌈
  • mon_state β€” cookie with information needed by link monitor πŸͺ
  • rst_cnt β€” link reset counter πŸ”
  • drop_point β€” seq number for failover handling (FIXME) πŸ™ˆ
  • failover_reasm_skb β€” saved failover msg ptr (FIXME) πŸ’€
  • failover_deferdq β€” deferred message queue for failover processing (FIXME) 🫠
  • mtu β€” current maximum packet size for this link πŸ“¦
  • advertised_mtu β€” advertised own mtu when link is being established πŸ“£
  • transmq β€” the link's transmit queue πŸš€
  • backlogq β€” queue for messages waiting to be sent πŸ•°οΈ
  • backlog β€” link's backlog by priority (importance) πŸ₯‡
  • snd_nxt β€” next sequence number to be used ➑️
  • rcv_nxt β€” next sequence number to expect for inbound messages ⬅️
  • rcv_unacked β€” # messages read by user, but not yet acked back to peer 😬
  • deferdq β€” deferred receive queue πŸ“₯
  • inputq β€” buffer queue for messages to be delivered upwards ⬆️
  • namedq β€” buffer queue for name table messages to be delivered upwards 🏷️
  • wakeupq β€” linked list of wakeup msgs waiting for link congestion to abate 😴
  • window β€” sliding window size for congestion handling πŸͺŸ
  • min_win β€” minimal send window to be used by link 🧸
  • ssthresh β€” slow start threshold for congestion handling 🐒
  • max_win β€” maximal send window to be used by link 🐘
  • cong_acks β€” congestion acks for congestion avoidance (FIXME) πŸ™ƒ
  • checkpoint β€” seq number for congestion window size handling 🚩
  • reasm_buf β€” head of partially reassembled inbound message fragments 🧩
  • reasm_tnlmsg β€” fragmentation/reassembly area for tunnel protocol message πŸš‡
  • ackers β€” # of peers that needs to ack each packet before it can be released βœ…
  • acked β€” # last packet acked by a certain peer. Used for broadcast. πŸ“‘
  • last_gap β€” last gap ack blocks for bcast (FIXME) πŸ’«
  • last_ga β€” ptr to gap ack blocks 🧷
  • bc_rcvlink β€” the peer specific link used for broadcast reception πŸ“»
  • bc_sndlink β€” the namespace global link used for broadcast sending πŸ“’
  • nack_state β€” bcast nack state 🚫
  • bc_peer_is_up β€” peer has acked the bcast init msg πŸ‘€
  • stats β€” collects statistics regarding link activity πŸ“Š

πŸ‘€ SEE ALSO πŸ‘€

Kernel file ./net/tipc/link.c β€” that's the spot, bestie. and these are the linked-up functions you're gonna wanna peek at:


mwah πŸ’‹ this page came from ./net/tipc, dated October 2026, and it's literally the struct tipc_link(9) page. bye bestie 🫢✨

πŸ“¦ where this page comes from