Lines Matching refs:cm_id

838 static void cm_destroy_id(struct ib_cm_id *cm_id, int err)  in cm_destroy_id()  argument
843 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in cm_destroy_id()
846 switch (cm_id->state) { in cm_destroy_id()
848 cm_id->state = IB_CM_IDLE; in cm_destroy_id()
855 cm_id->state = IB_CM_IDLE; in cm_destroy_id()
872 ib_send_cm_rej(cm_id, IB_CM_REJ_TIMEOUT, in cm_destroy_id()
884 ib_send_cm_rej(cm_id, IB_CM_REJ_CONSUMER_DEFINED, in cm_destroy_id()
896 ib_send_cm_rej(cm_id, IB_CM_REJ_CONSUMER_DEFINED, in cm_destroy_id()
903 ib_send_cm_dreq(cm_id, NULL, 0); in cm_destroy_id()
912 ib_send_cm_drep(cm_id, NULL, 0); in cm_destroy_id()
919 cm_free_id(cm_id->local_id); in cm_destroy_id()
929 void ib_destroy_cm_id(struct ib_cm_id *cm_id) in ib_destroy_cm_id() argument
931 cm_destroy_id(cm_id, 0); in ib_destroy_cm_id()
935 int ib_cm_listen(struct ib_cm_id *cm_id, __be64 service_id, __be64 service_mask, in ib_cm_listen() argument
948 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_cm_listen()
949 if (cm_id->state != IB_CM_IDLE) in ib_cm_listen()
963 cm_id->state = IB_CM_LISTEN; in ib_cm_listen()
967 cm_id->service_id = cpu_to_be64(cm.listen_service_id++); in ib_cm_listen()
968 cm_id->service_mask = ~cpu_to_be64(0); in ib_cm_listen()
970 cm_id->service_id = service_id; in ib_cm_listen()
971 cm_id->service_mask = service_mask; in ib_cm_listen()
977 cm_id->state = IB_CM_IDLE; in ib_cm_listen()
1113 int ib_send_cm_req(struct ib_cm_id *cm_id, in ib_send_cm_req() argument
1126 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_req()
1128 if (cm_id->state != IB_CM_IDLE) { in ib_send_cm_req()
1151 cm_id->service_id = param->service_id; in ib_send_cm_req()
1152 cm_id->service_mask = ~cpu_to_be64(0); in ib_send_cm_req()
1184 BUG_ON(cm_id->state != IB_CM_IDLE); in ib_send_cm_req()
1185 cm_id->state = IB_CM_REQ_SENT; in ib_send_cm_req()
1527 struct ib_cm_id *cm_id; in cm_req_handler() local
1534 cm_id = ib_create_cm_id(work->port->cm_dev->ib_device, NULL, NULL); in cm_req_handler()
1535 if (IS_ERR(cm_id)) in cm_req_handler()
1536 return PTR_ERR(cm_id); in cm_req_handler()
1538 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in cm_req_handler()
1574 ib_send_cm_rej(cm_id, IB_CM_REJ_INVALID_GID, in cm_req_handler()
1582 ib_send_cm_rej(cm_id, IB_CM_REJ_INVALID_ALT_GID, in cm_req_handler()
1611 ib_destroy_cm_id(cm_id); in cm_req_handler()
1645 int ib_send_cm_rep(struct ib_cm_id *cm_id, in ib_send_cm_rep() argument
1658 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_rep()
1660 if (cm_id->state != IB_CM_REQ_RCVD && in ib_send_cm_rep()
1661 cm_id->state != IB_CM_MRA_REQ_SENT) { in ib_send_cm_rep()
1682 cm_id->state = IB_CM_REP_SENT; in ib_send_cm_rep()
1707 int ib_send_cm_rtu(struct ib_cm_id *cm_id, in ib_send_cm_rtu() argument
1724 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_rtu()
1726 if (cm_id->state != IB_CM_REP_RCVD && in ib_send_cm_rtu()
1727 cm_id->state != IB_CM_MRA_REP_SENT) { in ib_send_cm_rtu()
1747 cm_id->state = IB_CM_ESTABLISHED; in ib_send_cm_rtu()
1996 int ib_send_cm_dreq(struct ib_cm_id *cm_id, in ib_send_cm_dreq() argument
2008 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_dreq()
2010 if (cm_id->state != IB_CM_ESTABLISHED) { in ib_send_cm_dreq()
2015 if (cm_id->lap_state == IB_CM_LAP_SENT || in ib_send_cm_dreq()
2016 cm_id->lap_state == IB_CM_MRA_LAP_RCVD) in ib_send_cm_dreq()
2038 cm_id->state = IB_CM_DREQ_SENT; in ib_send_cm_dreq()
2058 int ib_send_cm_drep(struct ib_cm_id *cm_id, in ib_send_cm_drep() argument
2075 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_drep()
2077 if (cm_id->state != IB_CM_DREQ_RCVD) { in ib_send_cm_drep()
2243 int ib_send_cm_rej(struct ib_cm_id *cm_id, in ib_send_cm_rej() argument
2259 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_rej()
2262 switch (cm_id->state) { in ib_send_cm_rej()
2417 int ib_send_cm_mra(struct ib_cm_id *cm_id, in ib_send_cm_mra() argument
2438 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_mra()
2444 lap_state = cm_id->lap_state; in ib_send_cm_mra()
2449 lap_state = cm_id->lap_state; in ib_send_cm_mra()
2453 if (cm_id->lap_state == IB_CM_LAP_RCVD) { in ib_send_cm_mra()
2454 cm_state = cm_id->state; in ib_send_cm_mra()
2477 cm_id->state = cm_state; in ib_send_cm_mra()
2478 cm_id->lap_state = lap_state; in ib_send_cm_mra()
2613 int ib_send_cm_lap(struct ib_cm_id *cm_id, in ib_send_cm_lap() argument
2626 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_lap()
2628 if (cm_id->state != IB_CM_ESTABLISHED || in ib_send_cm_lap()
2629 (cm_id->lap_state != IB_CM_LAP_UNINIT && in ib_send_cm_lap()
2630 cm_id->lap_state != IB_CM_LAP_IDLE)) { in ib_send_cm_lap()
2658 cm_id->lap_state = IB_CM_LAP_SENT; in ib_send_cm_lap()
2786 int ib_send_cm_apr(struct ib_cm_id *cm_id, in ib_send_cm_apr() argument
2802 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_apr()
2804 if (cm_id->state != IB_CM_ESTABLISHED || in ib_send_cm_apr()
2805 (cm_id->lap_state != IB_CM_LAP_RCVD && in ib_send_cm_apr()
2806 cm_id->lap_state != IB_CM_MRA_LAP_SENT)) { in ib_send_cm_apr()
2824 cm_id->lap_state = IB_CM_LAP_IDLE; in ib_send_cm_apr()
2926 int ib_send_cm_sidr_req(struct ib_cm_id *cm_id, in ib_send_cm_sidr_req() argument
2938 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_sidr_req()
2943 cm_id->service_id = param->service_id; in ib_send_cm_sidr_req()
2944 cm_id->service_mask = ~cpu_to_be64(0); in ib_send_cm_sidr_req()
2957 if (cm_id->state == IB_CM_IDLE) in ib_send_cm_sidr_req()
2967 cm_id->state = IB_CM_SIDR_REQ_SENT; in ib_send_cm_sidr_req()
2992 struct ib_cm_id *cm_id; in cm_sidr_req_handler() local
2997 cm_id = ib_create_cm_id(work->port->cm_dev->ib_device, NULL, NULL); in cm_sidr_req_handler()
2998 if (IS_ERR(cm_id)) in cm_sidr_req_handler()
2999 return PTR_ERR(cm_id); in cm_sidr_req_handler()
3000 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in cm_sidr_req_handler()
3024 cur_cm_id_priv = cm_find_listen(cm_id->device, in cm_sidr_req_handler()
3070 int ib_send_cm_sidr_rep(struct ib_cm_id *cm_id, in ib_send_cm_sidr_rep() argument
3083 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_send_cm_sidr_rep()
3085 if (cm_id->state != IB_CM_SIDR_REQ_RCVD) { in ib_send_cm_sidr_rep()
3102 cm_id->state = IB_CM_IDLE; in ib_send_cm_sidr_rep()
3308 static int cm_establish(struct ib_cm_id *cm_id) in cm_establish() argument
3319 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in cm_establish()
3321 switch (cm_id->state) in cm_establish()
3325 cm_id->state = IB_CM_ESTABLISHED; in cm_establish()
3348 work->local_id = cm_id->local_id; in cm_establish()
3349 work->remote_id = cm_id->remote_id; in cm_establish()
3357 static int cm_migrate(struct ib_cm_id *cm_id) in cm_migrate() argument
3363 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in cm_migrate()
3365 if (cm_id->state == IB_CM_ESTABLISHED && in cm_migrate()
3366 (cm_id->lap_state == IB_CM_LAP_UNINIT || in cm_migrate()
3367 cm_id->lap_state == IB_CM_LAP_IDLE)) { in cm_migrate()
3368 cm_id->lap_state = IB_CM_LAP_IDLE; in cm_migrate()
3377 int ib_cm_notify(struct ib_cm_id *cm_id, enum ib_event_type event) in ib_cm_notify() argument
3383 ret = cm_establish(cm_id); in ib_cm_notify()
3386 ret = cm_migrate(cm_id); in ib_cm_notify()
3632 int ib_cm_init_qp_attr(struct ib_cm_id *cm_id, in ib_cm_init_qp_attr() argument
3639 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_cm_init_qp_attr()