STRUCT ISER_RX_DESC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct iser_rx_desc(9) β€” the iSER RX descriptor, explained πŸ’–

okay bestie, welcome to the <pink>kernel api manual</pink> ✨ this one is literally the page for struct iser_rx_desc, which is the iSER RX descriptor πŸŽ€ yes that's the NAME section, we're doing this properly.


✨ SYNOPSIS ✨

here's the whole vibe, copy-pasted straight from the source because we do not paraphrase code in this house πŸ’…

struct iser_rx_desc {
    struct iser_ctrl             iser_header;
    struct iscsi_hdr             iscsi_header;
    char data[ISER_RECV_DATA_SEG_LEN];
    u64 dma_addr;
    struct ib_sge                rx_sg;
    struct ib_cqe                cqe;
    char pad[ISER_RX_PAD_SIZE];
 };

that's it. that's the struct. no cap, it's giving receive buffer main character energy πŸ¦‹


🫢 Members 🫢

like a group chat, every member pulls their weight:

  • iser_header β€” the iser header 🌸 literally just the iser header, doing iser header things.
  • iscsi_header β€” the iscsi header πŸ’œ same deal, but iscsi flavored.
  • data β€” the received data segment πŸ“ this is where the actual payload lands, bestie. the good stuff.
  • dma_addr β€” the receive buffer dma address ✨ the address of the receive buffer, dma-style. iykyk.
  • rx_sg β€” ib_sge of receive buffer πŸŽ€ the scatter/gather entry for the receive buffer.
  • cqe β€” the completion handler πŸ’« it handles completions. iconic behavior honestly.
  • pad β€” for sense data. and here's the note, straight up, no editing: TODO: Modify to maximum sense length supported 😭 yeah, it's a TODO. we love a work-in-progress king πŸ‘‘ it's padding for sense data, and the TODO says to modify it to the maximum sense length supported.
ngl, that pad field is lowkey the most relatable member β€” just vibing there, waiting for someone to come fix it πŸ™ˆ

🌈 SEE ALSO 🌈

go read these next, they're the friend group 🧚 and yes, the source file is right there too:

  • Kernel file ./drivers/infiniband/ulp/iser/iscsi_iser.h
  • struct iser_data_buf(9)
  • struct iser_mem_reg(9)
  • struct iser_tx_desc(9)
  • struct iser_login_desc(9)
  • struct iser_device(9)
  • struct iser_reg_resources(9)
  • struct iser_fr_desc(9)
  • struct iser_fr_pool(9)
  • struct ib_conn(9)
  • struct iser_conn(9)
  • struct iscsi_iser_task(9)
  • struct iser_global(9)

okay that's the whole page, you ate it fr fr πŸ’… this masterpiece lives over in ./drivers/infiniband/ulp/iser, and it's stamped October 2026 β€” so yeah, see you in the future bestie, stay slay, drink water, read your kernel headers πŸ«Άβœ¨πŸŽ€

πŸ“¦ where this page comes from