STRUCT LIBIE_CTLQ_XN_SEND_PARAMS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct libie_ctlq_xn_send_params(9) πŸ’–

okay so this is the Kernel API Manual, bestie, and today we're doing a vibe check on a struct β€” yes, a whole struct β€” and honestly it's giving "let me introduce you to my little friend" energy. sit down, grab a strawberry πŸ“, and let's get into it.


✨ NAME ✨

struct libie_ctlq_xn_send_params β€” literally the structure that represents an Xn send entry. that's it, that's the whole personality πŸŽ€


🌸 SYNOPSIS 🌸

struct libie_ctlq_xn_send_params {
    void (*resp_cb)(void *ctx, struct kvec *mem, int status);
    void (*rel_tx_buf)(const void *buf_va);
    struct libie_ctlq_xn_manager            *xnm;
    struct libie_ctlq_info                  *ctlq;
    struct libie_ctlq_msg                   *ctlq_msg;
    struct kvec                             send_buf;
    struct kvec                             recv_mem;
    void *send_ctx;
    u64 timeout_ms;
    u32 chnl_opcode;
 };

look at all those fields. main character struct fr fr πŸ‘‘


πŸ¦‹ Members πŸ¦‹

okay so here's the member-by-member breakdown, no skipping, we don't do that here πŸ’…

  • resp_cb β€” a non-sleeping callback that handles the response to an async message. non-sleeping, okay?? do not put it to bed 😴
  • rel_tx_buf β€” another non-sleeping callback, this one's whole job is freeing the send buffer. it's giving "cleanup crew" energy 🧹
  • xnm β€” the Xn manager, aka the one that processes Xn entries. the boss of this whole situation.
  • ctlq β€” send control queue information. queue info goes here πŸŽ€
  • ctlq_msg β€” control queue message information. message info goes here πŸ’Œ
  • send_buf β€” the buffer carrying your outgoing message data. heads up though: buffers larger than LIBIE_CP_TX_COPYBREAK bytes will always be consumed. always. no cap. πŸ”₯
  • recv_mem β€” the receive buffer, where the good stuff comes back πŸ’œ
  • send_ctx β€” context for the callback function. it's the callback's emotional support context, honestly 🫢
  • timeout_ms β€” the virtchnl transaction timeout, in msecs. don't wait forever, bestie ⏰
  • chnl_opcode β€” the virtchnl message opcode. the little tag that says what kind of message this is οΏ½οΏ½

🌈 SEE ALSO 🌈

go check out the kernel file ./include/linux/net/intel/libie/controlq.h enum β€” it's right there and it's iconic. then there's this whole friend group:

  • libie_ctlq_type(9)
  • struct libie_ctlq_ctx(9)
  • struct libie_ctlq_reg(9)
  • struct libie_cp_dma_mem(9)
  • struct libie_ctlq_msg(9)
  • struct libie_ctlq_create_info(9)
  • struct libie_ctlq_info(9)
  • struct libie_ctlq_desc(9)
  • struct libie_ctlq_clean_params(9)
  • libie_ctlq_release_rx_buf(9)
  • enum libie_ctlq_xn_state(9)
  • struct libie_ctlq_xn(9)
  • struct libie_ctlq_xn_manager(9)
  • libie_cp_can_send_onstack(9)
  • struct libie_ctlq_xn_recv_params(9)
  • struct libie_ctlq_xn_init_params(9)

aaaand that's the page!! πŸŽ‰ this came from ./include/linux/net/intel/libie, dated October 2026, and its whole name is struct libie..._send_params(9) because it's ✨mysterious✨ like that. mwah πŸ’‹ bye bestie, go read the source, it's good for you πŸ¦‹βœ¨

πŸ“¦ where this page comes from