void build_connection(struct rdma_cm_id *id) { struct connection *conn; struct ibv_qp_init_attr qp_attr; //init semaphores sem_init(&read_ops, 0, 0); sem_init(&done_ops, 0, 0); sem_init(&write_ops, 0, 1); build_context(id->verbs); build_qp_attr(&qp_attr); TEST_NZ(rdma_create_qp(id, s_ctx->pd, &qp_attr)); id->context = conn = (struct connection *)malloc(sizeof(struct connection)); conn->id = id; conn->qp = id->qp; conn->send_state = SS_INIT; conn->recv_state = RS_INIT; conn->connected = 0; register_memory(conn); post_receives(conn); }
void build_connection(struct rdma_cm_id *id) { rdma_conn_t *conn; struct ibv_qp_init_attr qp_attr; build_context(id->verbs); build_qp_attr(&qp_attr); TEST_NZ(rdma_create_qp(id, s_ctx->pd, &qp_attr)); conn = malloc(sizeof(rdma_conn_t)); id->context = conn; rdma_conn = conn; conn->id = id; conn->qp = id->qp; conn->send_state = SS_INIT; conn->recv_state = RS_INIT; conn->connected = 0; register_memory(conn); post_receives(conn); }
int on_addr_resolved(struct rdma_cm_id *id) { struct ibv_qp_init_attr qp_attr; struct connection *conn; printf("address resolved.\n"); build_context(id->verbs); build_qp_attr(&qp_attr); TEST_NZ(rdma_create_qp(id, s_ctx->pd, &qp_attr)); id->context = conn = (struct connection *)malloc(sizeof(struct connection)); conn->id = id; conn->qp = id->qp; conn->num_completions = 0; register_memory(conn); post_receives(conn); TEST_NZ(rdma_resolve_route(id, TIMEOUT_IN_MS)); return 0; }
void Connector::build_conn(struct rdma_cm_id* id_) { struct ibv_qp_init_attr qp_attr; build_context(id_->verbs); build_qp_attr(&qp_attr); TEST_NZ(rdma_create_qp(id_, s_ctx_->pd_, &qp_attr) ) }
void build_connection(struct rdma_cm_id *id){ struct ibv_qp_init_attr qp_attr; struct connection *conn; build_qp_attr(&qp_attr); TEST_NZ(rdma_create_qp(id, s_ctx->pd, &qp_attr)); id->context = conn = (struct connection *)malloc(sizeof(struct connection)); conn->id = id; conn->qp = id->qp; }
void build_connection(struct rdma_cm_id *id) { IbvConnection *conn; struct ibv_qp_init_attr qp_attr; id->context = conn = (IbvConnection *)malloc(sizeof(IbvConnection)); build_verbs(conn, id->verbs); build_qp_attr(conn, &qp_attr); TEST_NZ(rdma_create_qp(id, conn->pd, &qp_attr)); conn->id = id; conn->qp = id->qp; conn->connected = 0; register_memory(conn); post_receives(conn); }
int on_connect_request(struct rdma_cm_id *id) { struct ibv_qp_init_attr qp_attr; struct rdma_conn_param cm_params; struct connection *conn; printf("received connection request.\n"); build_context(id->verbs); build_qp_attr(&qp_attr); TEST_NZ(rdma_create_qp(id, s_ctx->pd, &qp_attr)); id->context = conn = (struct connection *)malloc(sizeof(struct connection)); conn->qp = id->qp; register_memory(conn); post_receives(conn); memset(&cm_params, 0, sizeof(cm_params)); TEST_NZ(rdma_accept(id, &cm_params)); return 0; }
void build_connection(struct rdma_cm_id *id){ struct ibv_qp_init_attr qp_attr; struct connection *conn; struct timeval start, end, dt; build_qp_attr(&qp_attr); TEST_NZ(rdma_create_qp(id, s_ctx->pd, &qp_attr)); id->context = conn = (struct connection *)malloc(sizeof(struct connection)); conn->id = id; conn->qp = id->qp; gettimeofday(&start, NULL); register_memory(conn); gettimeofday(&end, NULL); timersub(&end, &start, &dt); long usec = dt.tv_usec + 1000000 * dt.tv_sec; printf("[Register] takes %ld micro_secs.\n", usec); }