STRUCT P9_TRANS_RDMA(9)
π struct p9_trans_rdma β the RDMA transport instance bestie β¨
okay so this page lives in the Kernel API Manual (that's section 9 of the manual, iykyk) and it's literally all about struct p9_trans_rdma π β the RDMA transport instance. yes, that one. the whole page is one struct and its little family of members, and honestly? she ate. π«Ά
β¨ NAME β¨
struct p9_trans_rdma β RDMA transport instance, no cap π
πΈ SYNOPSIS πΈ
here's the whole vibe, membrane by membrane, exactly as written β do not come for me if you think a field is missing, this is the full list fr fr:
struct p9_trans_rdma {
enum {
P9_RDMA_INIT,
P9_RDMA_ADDR_RESOLVED,
P9_RDMA_ROUTE_RESOLVED,
P9_RDMA_CONNECTED,
P9_RDMA_FLUSHING,
P9_RDMA_CLOSING,
P9_RDMA_CLOSED,
} state;
struct rdma_cm_id *cm_id;
struct ib_pd *pd;
struct ib_qp *qp;
struct ib_cq *cq;
long timeout;
bool privport;
u16 port;
int sq_depth;
struct semaphore sq_sem;
int rq_depth;
struct semaphore rq_sem;
atomic_t excess_rc;
struct sockaddr_in addr;
spinlock_t req_lock;
struct completion cm_done;
};
like, look at that enum. seven little states, living their best lives. π
π¦ Members π¦
so here's the cast, one iconic member at a time β bestie, take notes:
stateβ tracks the transport state machine for connection setup and tear down. it's giving main character energy, honestly, because she's the one holding the whole lifecycle together πcm_idβ The RDMA CM ID π₯pdβ Protection Domain pointer β¨qpβ Queue Pair pointer πcqβ Completion Queue pointer πΈtimeoutβ Number ofuSecsto wait for connection management events. yes, uSecs. microseconds. she's impatient, respect it πprivportβ Whether a privileged port may be used πportβ The port to use πsq_depthβ The depth of the Send Queue π€sq_semβ Semaphore for the SQ πrq_depthβ The depth of the Receive Queue. π₯rq_semβ Semaphore for the RQ πexcess_rcβ Amount of posted Receive Contexts without a pending request. basically the leftovers pile π β and note it says Seerdma_request, so like, go look atrdma_requestif you want the full lore, i don't make the rules πaddrβ The remote peer's address πreq_lockβ Protects the active request list π‘οΈ like a bouncer for the req list, periodtcm_doneβ Completion event for connection management tracking β
π«Ά quick vibe check:excess_rcis literally defined by pointing you atrdma_request, so that's not me being vague, that's the manual being mysterious. iconic of it.
π§ SEE ALSO π§
go read these next, they're the rest of the friend group π β and they all live in the Kernel file ./net/9p/trans_rdma.c:
struct p9_rdma_context(9)alloc_rdma(9)rdma_create_trans(9)p9_trans_rdma_init(9)
and that's the page!! mwah π this lil fandom lives at ./net/9p and the version stamp says October 2026 β so like, slightly future-dated, very mysterious, very slay. see you in the next man page, bestie ππ
π¦ 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