Lines Matching defs:cm_id

861 	 * The cm_id could be destroyed by the user before we exit timewait.
862 * To protect against this, we search for the cm_id after exiting
892 static void cm_destroy_id(struct ib_cm_id *cm_id, int err)
897 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
900 switch (cm_id->state) {
915 cm_id->state = IB_CM_IDLE;
932 ib_send_cm_rej(cm_id, IB_CM_REJ_TIMEOUT,
944 ib_send_cm_rej(cm_id, IB_CM_REJ_CONSUMER_DEFINED,
956 ib_send_cm_rej(cm_id, IB_CM_REJ_CONSUMER_DEFINED,
963 ib_send_cm_dreq(cm_id, NULL, 0);
972 ib_send_cm_drep(cm_id, NULL, 0);
988 cm_free_id(cm_id->local_id);
997 void ib_destroy_cm_id(struct ib_cm_id *cm_id)
999 cm_destroy_id(cm_id, 0);
1006 * @cm_id: Connection identifier associated with the listen request.
1016 static int __ib_cm_listen(struct ib_cm_id *cm_id, __be64 service_id,
1028 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
1029 if (cm_id->state != IB_CM_IDLE)
1032 cm_id->state = IB_CM_LISTEN;
1036 cm_id->service_id = cpu_to_be64(cm.listen_service_id++);
1037 cm_id->service_mask = ~cpu_to_be64(0);
1039 cm_id->service_id = service_id;
1040 cm_id->service_mask = service_mask;
1045 cm_id->state = IB_CM_IDLE;
1052 int ib_cm_listen(struct ib_cm_id *cm_id, __be64 service_id, __be64 service_mask)
1058 ret = __ib_cm_listen(cm_id, service_id, service_mask);
1071 * @device: Device associated with the cm_id. All related communication will
1086 struct ib_cm_id *cm_id;
1091 cm_id = ib_create_cm_id(device, cm_handler, NULL);
1092 if (IS_ERR(cm_id))
1093 return cm_id;
1103 if (cm_id->cm_handler != cm_handler || cm_id->context) {
1113 ib_destroy_cm_id(cm_id);
1114 cm_id = &cm_id_priv->id;
1115 return cm_id;
1120 err = __ib_cm_listen(cm_id, service_id, 0);
1125 ib_destroy_cm_id(cm_id);
1128 return cm_id;
1259 int ib_send_cm_req(struct ib_cm_id *cm_id,
1272 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
1274 if (cm_id->state != IB_CM_IDLE) {
1298 cm_id->service_id = param->service_id;
1299 cm_id->service_mask = ~cpu_to_be64(0);
1331 BUG_ON(cm_id->state != IB_CM_IDLE);
1332 cm_id->state = IB_CM_REQ_SENT;
1687 struct ib_cm_id *cm_id;
1696 cm_id = ib_create_cm_id(work->port->cm_dev->ib_device, NULL, NULL);
1697 if (IS_ERR(cm_id))
1698 return PTR_ERR(cm_id);
1700 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
1759 ib_send_cm_rej(cm_id, IB_CM_REJ_INVALID_GID,
1768 ib_send_cm_rej(cm_id, IB_CM_REJ_INVALID_ALT_GID,
1797 ib_destroy_cm_id(cm_id);
1831 int ib_send_cm_rep(struct ib_cm_id *cm_id,
1844 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
1846 if (cm_id->state != IB_CM_REQ_RCVD &&
1847 cm_id->state != IB_CM_MRA_REQ_SENT) {
1868 cm_id->state = IB_CM_REP_SENT;
1893 int ib_send_cm_rtu(struct ib_cm_id *cm_id,
1910 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
1912 if (cm_id->state != IB_CM_REP_RCVD &&
1913 cm_id->state != IB_CM_MRA_REP_SENT) {
1933 cm_id->state = IB_CM_ESTABLISHED;
2182 int ib_send_cm_dreq(struct ib_cm_id *cm_id,
2194 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
2196 if (cm_id->state != IB_CM_ESTABLISHED) {
2201 if (cm_id->lap_state == IB_CM_LAP_SENT ||
2202 cm_id->lap_state == IB_CM_MRA_LAP_RCVD)
2224 cm_id->state = IB_CM_DREQ_SENT;
2244 int ib_send_cm_drep(struct ib_cm_id *cm_id,
2261 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
2263 if (cm_id->state != IB_CM_DREQ_RCVD) {
2431 int ib_send_cm_rej(struct ib_cm_id *cm_id,
2447 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
2450 switch (cm_id->state) {
2605 int ib_send_cm_mra(struct ib_cm_id *cm_id,
2626 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
2632 lap_state = cm_id->lap_state;
2637 lap_state = cm_id->lap_state;
2641 if (cm_id->lap_state == IB_CM_LAP_RCVD) {
2642 cm_state = cm_id->state;
2665 cm_id->state = cm_state;
2666 cm_id->lap_state = lap_state;
2801 int ib_send_cm_lap(struct ib_cm_id *cm_id,
2814 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
2816 if (cm_id->state != IB_CM_ESTABLISHED ||
2817 (cm_id->lap_state != IB_CM_LAP_UNINIT &&
2818 cm_id->lap_state != IB_CM_LAP_IDLE)) {
2847 cm_id->lap_state = IB_CM_LAP_SENT;
2982 int ib_send_cm_apr(struct ib_cm_id *cm_id,
2998 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
3000 if (cm_id->state != IB_CM_ESTABLISHED ||
3001 (cm_id->lap_state != IB_CM_LAP_RCVD &&
3002 cm_id->lap_state != IB_CM_MRA_LAP_SENT)) {
3020 cm_id->lap_state = IB_CM_LAP_IDLE;
3122 int ib_send_cm_sidr_req(struct ib_cm_id *cm_id,
3134 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
3139 cm_id->service_id = param->service_id;
3140 cm_id->service_mask = ~cpu_to_be64(0);
3153 if (cm_id->state == IB_CM_IDLE)
3163 cm_id->state = IB_CM_SIDR_REQ_SENT;
3192 struct ib_cm_id *cm_id;
3198 cm_id = ib_create_cm_id(work->port->cm_dev->ib_device, NULL, NULL);
3199 if (IS_ERR(cm_id))
3200 return PTR_ERR(cm_id);
3201 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
3227 cur_cm_id_priv = cm_find_listen(cm_id->device,
3272 int ib_send_cm_sidr_rep(struct ib_cm_id *cm_id,
3285 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
3287 if (cm_id->state != IB_CM_SIDR_REQ_RCVD) {
3304 cm_id->state = IB_CM_IDLE;
3406 /* No other events can occur on the cm_id at this point. */
3430 * set to a cm_id), and is not a REJ, then it is a send that was
3510 static int cm_establish(struct ib_cm_id *cm_id)
3518 cm_dev = ib_get_client_data(cm_id->device, &cm_client);
3526 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
3528 switch (cm_id->state)
3532 cm_id->state = IB_CM_ESTABLISHED;
3549 * The CM worker thread may try to destroy the cm_id before it
3551 * we need to find the cm_id once we're in the context of the
3555 work->local_id = cm_id->local_id;
3556 work->remote_id = cm_id->remote_id;
3574 static int cm_migrate(struct ib_cm_id *cm_id)
3582 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
3584 if (cm_id->state == IB_CM_ESTABLISHED &&
3585 (cm_id->lap_state == IB_CM_LAP_UNINIT ||
3586 cm_id->lap_state == IB_CM_LAP_IDLE)) {
3587 cm_id->lap_state = IB_CM_LAP_IDLE;
3603 int ib_cm_notify(struct ib_cm_id *cm_id, enum ib_event_type event)
3609 ret = cm_establish(cm_id);
3612 ret = cm_migrate(cm_id);
3846 int ib_cm_init_qp_attr(struct ib_cm_id *cm_id,
3853 cm_id_priv = container_of(cm_id, struct cm_id_private, id);
4091 /* Mark all the cm_id's as not valid */