RDMA_GET_REMOTE_ECE(3)
π RDMA_GET_REMOTE_ECE π
okay so this one's from the Librdmacm Programmer's Manual (that's RDMA_GET_REMOTE_ECE(3) if you're keeping score, and yes the title is doing the absolute most with the all-caps, we love that for it) β¨
πΈ NAME πΈ
rdma_get_remote_ece β bestie, this is the one that grabs the remote ECE parameters exactly as they came in from the peer. no cap, that's the whole job π«Ά
β¨ SYNOPSIS β¨
#include <rdma/rdma_cma.h>
int rdma_get_remote_ece(struct rdma_cm_id *id, struct ibv_ece *ece);
π¦ DESCRIPTION π¦
so rdma_get_remote_ece() gets you the ECE parameters as were received from the communication peer. that's it, that's the vibe π
this function is supposed to be used by the users of external QPs. like, you're the main character running your own QP, iykyk. the call needs to happen before you reply to the peer, and it's needed so the passive side can actually know the ECE options of the other side. lowkey essential.
and here's the catch, because there's always a catch π β since an external QP is in play and RDMA_CM doesn't manage that QP, the peer needs to call the libibverbs API by itself. no hand-holding here, bestie, you're on your own for that part.
the usual flow for the passive side is literally this:
ibv_create_qp()<- create data QP. πece = rdma_get_remote_ece()<- get ECE options from remote peeribv_set_ece(ece)<- set local ECE options with data received from the peeribv_modify_qp()<- enable data QPrdma_set_local_ece(ece)<- set desired ECE options after respectivelibibverbsprovider masked unsupported optionsrdma_accept()/rdma_establish()/rdma_reject_ece()
like, read it top to bottom, don't skip steps, the order is the whole point π₯
β ARGUMENTS β
*idβ RDMA communication identifier. your little handle on the conversation π*eceβ ECE struct to be filled. you hand it over empty, it comes back with tea β
π RETURN VALUE π
rdma_get_remote_ece() returns 0 on success, or -1 on error. and if an error happens, errno will be set to indicate the failure reason. so like, check it, bestie, please π
π SEE ALSO π
rdma_cm(7), rdma_set_local_ece(3)
π AUTHOR π
Leon Romanovsky <leonro@mellanox.com> β king behavior, honestly π«Ά
and that's a wrap, sending you off with so much love from librdmacm, version dated 2020-02-02 β go forth and get those remote ECE parameters, you absolute icon π§π
π¦ where this page comes from
- alpine 3.24: rdma-core-doc 61.0-r0 Β· GPL-2.0-only OR BSD-2-Clause
- centos-stream 10: rdma-core-devel 62.0-3.el10 Β· GPLv2 or BSD
- centos-stream 9: rdma-core-devel 61.0-3.el9 Β· GPLv2 or BSD
- centos-stream 9: rdma-core-devel 61.0-3.el9 Β· GPLv2 or BSD
- ubuntu jammy: librdmacm-dev 39.0-1 Β· BSD-MIT OR GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms