Lines Matching refs:cm_id

93 	struct rdma_cm_id	*cm_id;  member
169 if (!ctx->cm_id->device) { in ucma_get_ctx_dev()
187 rdma_destroy_id(ctx->cm_id); in ucma_close_id()
190 ctx->cm_id = NULL; in ucma_close_id()
217 struct rdma_cm_id *cm_id) in ucma_set_ctx_cm_id() argument
220 ctx->cm_id = cm_id; in ucma_set_ctx_cm_id()
284 if (ctx->cm_id->qp_type == IB_QPT_UD) in ucma_create_uevent()
285 ucma_copy_ud_event(ctx->cm_id->device, &uevent->resp.param.ud, in ucma_create_uevent()
296 static int ucma_connect_event_handler(struct rdma_cm_id *cm_id, in ucma_connect_event_handler() argument
299 struct ucma_context *listen_ctx = cm_id->context; in ucma_connect_event_handler()
308 ucma_set_ctx_cm_id(ctx, cm_id); in ucma_connect_event_handler()
316 ctx->cm_id->context = ctx; in ucma_connect_event_handler()
333 static int ucma_event_handler(struct rdma_cm_id *cm_id, in ucma_event_handler() argument
337 struct ucma_context *ctx = cm_id->context; in ucma_event_handler()
340 return ucma_connect_event_handler(cm_id, event); in ucma_event_handler()
445 struct rdma_cm_id *cm_id; in ucma_create_id() local
464 cm_id = rdma_create_user_id(ucma_event_handler, ctx, cmd.ps, qp_type); in ucma_create_id()
465 if (IS_ERR(cm_id)) { in ucma_create_id()
466 ret = PTR_ERR(cm_id); in ucma_create_id()
469 ucma_set_ctx_cm_id(ctx, cm_id); in ucma_create_id()
509 rdma_lock_handler(mc->ctx->cm_id); in ucma_cleanup_mc_events()
519 rdma_unlock_handler(mc->ctx->cm_id); in ucma_cleanup_mc_events()
643 ret = rdma_bind_addr(ctx->cm_id, (struct sockaddr *) &cmd.addr); in ucma_bind_ip()
669 ret = rdma_bind_addr(ctx->cm_id, (struct sockaddr *) &cmd.addr); in ucma_bind()
695 ret = rdma_resolve_addr(ctx->cm_id, (struct sockaddr *) &cmd.src_addr, in ucma_resolve_ip()
723 ret = rdma_resolve_addr(ctx->cm_id, (struct sockaddr *) &cmd.src_addr, in ucma_resolve_addr()
746 ret = rdma_resolve_route(ctx->cm_id, cmd.timeout_ms); in ucma_resolve_route()
838 addr = (struct sockaddr *) &ctx->cm_id->route.addr.src_addr; in ucma_query_route()
842 addr = (struct sockaddr *) &ctx->cm_id->route.addr.dst_addr; in ucma_query_route()
846 if (!ctx->cm_id->device) in ucma_query_route()
849 resp.node_guid = (__force __u64) ctx->cm_id->device->node_guid; in ucma_query_route()
850 resp.ibdev_index = ctx->cm_id->device->index; in ucma_query_route()
851 resp.port_num = ctx->cm_id->port_num; in ucma_query_route()
853 if (rdma_cap_ib_sa(ctx->cm_id->device, ctx->cm_id->port_num)) in ucma_query_route()
854 ucma_copy_ib_route(&resp, &ctx->cm_id->route); in ucma_query_route()
855 else if (rdma_protocol_roce(ctx->cm_id->device, ctx->cm_id->port_num)) in ucma_query_route()
856 ucma_copy_iboe_route(&resp, &ctx->cm_id->route); in ucma_query_route()
857 else if (rdma_protocol_iwarp(ctx->cm_id->device, ctx->cm_id->port_num)) in ucma_query_route()
858 ucma_copy_iw_route(&resp, &ctx->cm_id->route); in ucma_query_route()
870 static void ucma_query_device_addr(struct rdma_cm_id *cm_id, in ucma_query_device_addr() argument
873 if (!cm_id->device) in ucma_query_device_addr()
876 resp->node_guid = (__force __u64) cm_id->device->node_guid; in ucma_query_device_addr()
877 resp->ibdev_index = cm_id->device->index; in ucma_query_device_addr()
878 resp->port_num = cm_id->port_num; in ucma_query_device_addr()
880 ib_addr_get_pkey(&cm_id->route.addr.dev_addr)); in ucma_query_device_addr()
895 addr = (struct sockaddr *) &ctx->cm_id->route.addr.src_addr; in ucma_query_addr()
899 addr = (struct sockaddr *) &ctx->cm_id->route.addr.dst_addr; in ucma_query_addr()
903 ucma_query_device_addr(ctx->cm_id, &resp); in ucma_query_addr()
924 resp->num_paths = ctx->cm_id->route.num_pri_alt_paths; in ucma_query_path()
928 struct sa_path_rec *rec = &ctx->cm_id->route.path_rec[i]; in ucma_query_path()
962 ucma_query_device_addr(ctx->cm_id, &resp); in ucma_query_gid()
966 if (ctx->cm_id->route.addr.src_addr.ss_family == AF_IB) { in ucma_query_gid()
967 memcpy(addr, &ctx->cm_id->route.addr.src_addr, resp.src_size); in ucma_query_gid()
971 rdma_read_gids(ctx->cm_id, (union ib_gid *)&addr->sib_addr, in ucma_query_gid()
973 addr->sib_sid = rdma_get_service_id(ctx->cm_id, (struct sockaddr *) in ucma_query_gid()
974 &ctx->cm_id->route.addr.src_addr); in ucma_query_gid()
979 if (ctx->cm_id->route.addr.dst_addr.ss_family == AF_IB) { in ucma_query_gid()
980 memcpy(addr, &ctx->cm_id->route.addr.dst_addr, resp.dst_size); in ucma_query_gid()
984 rdma_read_gids(ctx->cm_id, NULL, in ucma_query_gid()
986 addr->sib_sid = rdma_get_service_id(ctx->cm_id, (struct sockaddr *) in ucma_query_gid()
987 &ctx->cm_id->route.addr.dst_addr); in ucma_query_gid()
1073 ucma_copy_conn_param(ctx->cm_id, &conn_param, &cmd.conn_param); in ucma_connect()
1080 ret = rdma_connect_ece(ctx->cm_id, &conn_param, &ece); in ucma_connect()
1105 ret = rdma_listen(ctx->cm_id, cmd.backlog); in ucma_listen()
1137 ucma_copy_conn_param(ctx->cm_id, &conn_param, &cmd.conn_param); in ucma_accept()
1139 rdma_lock_handler(ctx->cm_id); in ucma_accept()
1140 ret = rdma_accept_ece(ctx->cm_id, &conn_param, &ece); in ucma_accept()
1145 rdma_unlock_handler(ctx->cm_id); in ucma_accept()
1149 rdma_lock_handler(ctx->cm_id); in ucma_accept()
1150 ret = rdma_accept_ece(ctx->cm_id, NULL, &ece); in ucma_accept()
1151 rdma_unlock_handler(ctx->cm_id); in ucma_accept()
1184 ret = rdma_reject(ctx->cm_id, cmd.private_data, cmd.private_data_len, in ucma_reject()
1206 ret = rdma_disconnect(ctx->cm_id); in ucma_disconnect()
1239 ret = rdma_init_qp_attr(ctx->cm_id, &qp_attr, &resp.qp_attr_mask); in ucma_init_qp_attr()
1244 ib_copy_qp_attr_to_user(ctx->cm_id->device, &resp, &qp_attr); in ucma_init_qp_attr()
1265 rdma_set_service_type(ctx->cm_id, *((u8 *) optval)); in ucma_set_option_id()
1272 ret = rdma_set_reuseaddr(ctx->cm_id, *((int *) optval) ? 1 : 0); in ucma_set_option_id()
1279 ret = rdma_set_afonly(ctx->cm_id, *((int *) optval) ? 1 : 0); in ucma_set_option_id()
1286 ret = rdma_set_ack_timeout(ctx->cm_id, *((u8 *)optval)); in ucma_set_option_id()
1314 if (!ctx->cm_id->device) in ucma_set_ib_path()
1322 if (rdma_cap_opa_ah(ctx->cm_id->device, ctx->cm_id->port_num)) { in ucma_set_ib_path()
1327 ret = rdma_set_ib_path(ctx->cm_id, &opa); in ucma_set_ib_path()
1331 ret = rdma_set_ib_path(ctx->cm_id, &sa_path); in ucma_set_ib_path()
1339 return ucma_event_handler(ctx->cm_id, &event); in ucma_set_ib_path()
1428 if (ctx->cm_id->device) in ucma_notify()
1429 ret = rdma_notify(ctx->cm_id, (enum ib_event_type)cmd.event); in ucma_notify()
1486 ret = rdma_join_multicast(ctx->cm_id, (struct sockaddr *)&mc->addr, in ucma_process_join()
1506 rdma_leave_multicast(ctx->cm_id, (struct sockaddr *) &mc->addr); in ucma_process_join()
1594 rdma_leave_multicast(mc->ctx->cm_id, (struct sockaddr *) &mc->addr); in ucma_leave_multicast()
1643 rdma_lock_handler(ctx->cm_id); in ucma_migrate_id()
1680 rdma_unlock_handler(ctx->cm_id); in ucma_migrate_id()