int rdma_create_srq (struct rdma_cm_id *id, struct ibv_pd *pd, struct ibv_srq_init_attr *attr);
If a protection domain is not given - pd parameter is NULL - then the rdma_cm_id will be created using a default protection domain. One default protection domain is allocated per RDMA device.
The initial SRQ attributes are specified by the attr parameter. The ext.xrc.cq fields in the ibv_srq_init_attr is optional. If a completion queue is not specified for an XRC SRQ, then a CQ will be allocated by the rdma_cm for the SRQ, along with corresponding completion channels. Completion channels and CQ data created by the rdma_cm are exposed to the user through the rdma_cm_id structure.
The actual capabilities and properties of the created SRQ will be returned to the user through the attr parameter. An rdma_cm_id may only be associated with a single SRQ.