Lines Matching refs:cm_id

82 	struct rdma_cm_id	*cm_id;
111 struct rdma_cm_id *cm_id;
128 else if (ctx->file != file || !ctx->cm_id)
156 * Same as ucm_get_ctx but requires that ->cm_id->device is valid, eg that the
165 if (!ctx->cm_id->device) {
176 rdma_destroy_id(uevent_close->cm_id);
191 rdma_destroy_id(ctx->cm_id);
294 static void ucma_removal_event_handler(struct rdma_cm_id *cm_id)
296 struct ucma_context *ctx = cm_id->context;
303 /* only if context is pointing to cm_id that it owns it and can be
304 * queued to be closed, otherwise that cm_id is an inflight one that
309 if (ctx->cm_id == cm_id) {
318 if (con_req_eve->cm_id == cm_id &&
331 static int ucma_event_handler(struct rdma_cm_id *cm_id,
335 struct ucma_context *ctx = cm_id->context;
343 uevent->cm_id = cm_id;
347 if (cm_id->qp_type == IB_QPT_UD)
360 } else if (!ctx->uid || ctx->cm_id != cm_id) {
370 ucma_removal_event_handler(cm_id);
379 ucma_removal_event_handler(cm_id);
422 ctx->cm_id = uevent->cm_id;
423 ctx->cm_id->context = ctx;
467 struct rdma_cm_id *cm_id;
488 cm_id = rdma_create_id(TD_TO_VNET(curthread),
490 if (IS_ERR(cm_id)) {
491 ret = PTR_ERR(cm_id);
502 ctx->cm_id = cm_id;
506 rdma_destroy_id(cm_id);
573 rdma_destroy_id(uevent->cm_id);
617 rdma_destroy_id(ctx->cm_id);
647 ret = rdma_bind_addr(ctx->cm_id, (struct sockaddr *) &cmd.addr);
670 ret = rdma_bind_addr(ctx->cm_id, (struct sockaddr *) &cmd.addr);
694 ret = rdma_resolve_addr(ctx->cm_id, (struct sockaddr *) &cmd.src_addr,
720 ret = rdma_resolve_addr(ctx->cm_id, (struct sockaddr *) &cmd.src_addr,
741 ret = rdma_resolve_route(ctx->cm_id, cmd.timeout_ms);
831 addr = (struct sockaddr *) &ctx->cm_id->route.addr.src_addr;
835 addr = (struct sockaddr *) &ctx->cm_id->route.addr.dst_addr;
839 if (!ctx->cm_id->device)
842 resp.node_guid = (__force __u64) ctx->cm_id->device->node_guid;
843 resp.port_num = ctx->cm_id->port_num;
845 if (rdma_cap_ib_sa(ctx->cm_id->device, ctx->cm_id->port_num))
846 ucma_copy_ib_route(&resp, &ctx->cm_id->route);
847 else if (rdma_protocol_roce(ctx->cm_id->device, ctx->cm_id->port_num))
848 ucma_copy_iboe_route(&resp, &ctx->cm_id->route);
849 else if (rdma_protocol_iwarp(ctx->cm_id->device, ctx->cm_id->port_num))
850 ucma_copy_iw_route(&resp, &ctx->cm_id->route);
861 static void ucma_query_device_addr(struct rdma_cm_id *cm_id,
864 if (!cm_id->device)
867 resp->node_guid = (__force __u64) cm_id->device->node_guid;
868 resp->port_num = cm_id->port_num;
870 ib_addr_get_pkey(&cm_id->route.addr.dev_addr));
885 addr = (struct sockaddr *) &ctx->cm_id->route.addr.src_addr;
889 addr = (struct sockaddr *) &ctx->cm_id->route.addr.dst_addr;
893 ucma_query_device_addr(ctx->cm_id, &resp);
914 resp->num_paths = ctx->cm_id->route.num_paths;
921 ib_sa_pack_path(&ctx->cm_id->route.path_rec[i],
945 ucma_query_device_addr(ctx->cm_id, &resp);
949 if (ctx->cm_id->route.addr.src_addr.ss_family == AF_IB) {
950 memcpy(addr, &ctx->cm_id->route.addr.src_addr, resp.src_size);
954 rdma_addr_get_sgid(&ctx->cm_id->route.addr.dev_addr,
956 addr->sib_sid = rdma_get_service_id(ctx->cm_id, (struct sockaddr *)
957 &ctx->cm_id->route.addr.src_addr);
962 if (ctx->cm_id->route.addr.dst_addr.ss_family == AF_IB) {
963 memcpy(addr, &ctx->cm_id->route.addr.dst_addr, resp.dst_size);
967 rdma_addr_get_dgid(&ctx->cm_id->route.addr.dev_addr,
969 addr->sib_sid = rdma_get_service_id(ctx->cm_id, (struct sockaddr *)
970 &ctx->cm_id->route.addr.dst_addr);
1049 ucma_copy_conn_param(ctx->cm_id, &conn_param, &cmd.conn_param);
1050 ret = rdma_connect(ctx->cm_id, &conn_param);
1071 ret = rdma_listen(ctx->cm_id, ctx->backlog);
1092 ucma_copy_conn_param(ctx->cm_id, &conn_param, &cmd.conn_param);
1094 ret = rdma_accept(ctx->cm_id, &conn_param);
1099 ret = rdma_accept(ctx->cm_id, NULL);
1119 ret = rdma_reject(ctx->cm_id, cmd.private_data, cmd.private_data_len);
1138 ret = rdma_disconnect(ctx->cm_id);
1166 ret = rdma_init_qp_attr(ctx->cm_id, &qp_attr, &resp.qp_attr_mask);
1191 rdma_set_service_type(ctx->cm_id, *((u8 *) optval));
1198 ret = rdma_set_reuseaddr(ctx->cm_id, *((int *) optval) ? 1 : 0);
1205 ret = rdma_set_afonly(ctx->cm_id, *((int *) optval) ? 1 : 0);
1236 ret = rdma_set_ib_paths(ctx->cm_id, &sa_path, 1);
1242 return ucma_event_handler(ctx->cm_id, &event);
1325 ret = rdma_notify(ctx->cm_id, (enum ib_event_type) cmd.event);
1367 ret = rdma_join_multicast(ctx->cm_id, (struct sockaddr *)&mc->addr,
1384 rdma_leave_multicast(ctx->cm_id, (struct sockaddr *) &mc->addr);
1465 rdma_leave_multicast(mc->ctx->cm_id, (struct sockaddr *) &mc->addr);
1704 rdma_destroy_id(ctx->cm_id);