Lines Matching refs:req_msg

1322 static void cm_format_req(struct cm_req_msg *req_msg,
1335 cm_format_mad_ece_hdr(&req_msg->hdr, CM_REQ_ATTR_ID,
1338 IBA_SET(CM_REQ_LOCAL_COMM_ID, req_msg,
1340 IBA_SET(CM_REQ_SERVICE_ID, req_msg, be64_to_cpu(param->service_id));
1341 IBA_SET(CM_REQ_LOCAL_CA_GUID, req_msg,
1343 IBA_SET(CM_REQ_LOCAL_QPN, req_msg, param->qp_num);
1344 IBA_SET(CM_REQ_INITIATOR_DEPTH, req_msg, param->initiator_depth);
1345 IBA_SET(CM_REQ_REMOTE_CM_RESPONSE_TIMEOUT, req_msg,
1347 cm_req_set_qp_type(req_msg, param->qp_type);
1348 IBA_SET(CM_REQ_END_TO_END_FLOW_CONTROL, req_msg, param->flow_control);
1349 IBA_SET(CM_REQ_STARTING_PSN, req_msg, param->starting_psn);
1350 IBA_SET(CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg,
1352 IBA_SET(CM_REQ_PARTITION_KEY, req_msg,
1354 IBA_SET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg,
1356 IBA_SET(CM_REQ_MAX_CM_RETRIES, req_msg, param->max_cm_retries);
1359 IBA_SET(CM_REQ_RESPONDER_RESOURCES, req_msg,
1361 IBA_SET(CM_REQ_RETRY_COUNT, req_msg, param->retry_count);
1362 IBA_SET(CM_REQ_RNR_RETRY_COUNT, req_msg,
1364 IBA_SET(CM_REQ_SRQ, req_msg, param->srq);
1367 *IBA_GET_MEM_PTR(CM_REQ_PRIMARY_LOCAL_PORT_GID, req_msg) =
1369 *IBA_GET_MEM_PTR(CM_REQ_PRIMARY_REMOTE_PORT_GID, req_msg) =
1372 IBA_GET_MEM_PTR(CM_REQ_PRIMARY_LOCAL_PORT_GID, req_msg)
1375 IBA_GET_MEM_PTR(CM_REQ_PRIMARY_REMOTE_PORT_GID, req_msg)
1380 IBA_SET(CM_REQ_PRIMARY_LOCAL_PORT_LID, req_msg,
1384 IBA_SET(CM_REQ_PRIMARY_REMOTE_PORT_LID, req_msg,
1392 IBA_SET(CM_REQ_PRIMARY_LOCAL_PORT_LID, req_msg,
1395 IBA_SET(CM_REQ_PRIMARY_LOCAL_PORT_LID, req_msg,
1399 IBA_SET(CM_REQ_PRIMARY_REMOTE_PORT_LID, req_msg,
1402 IBA_SET(CM_REQ_PRIMARY_FLOW_LABEL, req_msg,
1404 IBA_SET(CM_REQ_PRIMARY_PACKET_RATE, req_msg, pri_path->rate);
1405 IBA_SET(CM_REQ_PRIMARY_TRAFFIC_CLASS, req_msg, pri_path->traffic_class);
1406 IBA_SET(CM_REQ_PRIMARY_HOP_LIMIT, req_msg, pri_path->hop_limit);
1407 IBA_SET(CM_REQ_PRIMARY_SL, req_msg, pri_path->sl);
1408 IBA_SET(CM_REQ_PRIMARY_SUBNET_LOCAL, req_msg,
1410 IBA_SET(CM_REQ_PRIMARY_LOCAL_ACK_TIMEOUT, req_msg,
1421 *IBA_GET_MEM_PTR(CM_REQ_ALTERNATE_LOCAL_PORT_GID, req_msg) =
1423 *IBA_GET_MEM_PTR(CM_REQ_ALTERNATE_REMOTE_PORT_GID, req_msg) =
1427 req_msg)
1431 req_msg)
1436 IBA_SET(CM_REQ_ALTERNATE_LOCAL_PORT_LID, req_msg,
1441 IBA_SET(CM_REQ_ALTERNATE_REMOTE_PORT_LID, req_msg,
1447 IBA_SET(CM_REQ_ALTERNATE_LOCAL_PORT_LID, req_msg,
1449 IBA_SET(CM_REQ_ALTERNATE_REMOTE_PORT_LID, req_msg,
1452 IBA_SET(CM_REQ_ALTERNATE_FLOW_LABEL, req_msg,
1454 IBA_SET(CM_REQ_ALTERNATE_PACKET_RATE, req_msg, alt_path->rate);
1455 IBA_SET(CM_REQ_ALTERNATE_TRAFFIC_CLASS, req_msg,
1457 IBA_SET(CM_REQ_ALTERNATE_HOP_LIMIT, req_msg,
1459 IBA_SET(CM_REQ_ALTERNATE_SL, req_msg, alt_path->sl);
1460 IBA_SET(CM_REQ_ALTERNATE_SUBNET_LOCAL, req_msg,
1462 IBA_SET(CM_REQ_ALTERNATE_LOCAL_ACK_TIMEOUT, req_msg,
1466 IBA_SET(CM_REQ_VENDOR_ID, req_msg, param->ece.vendor_id);
1469 IBA_SET_MEM(CM_REQ_PRIVATE_DATA, req_msg, param->private_data,
1500 struct cm_req_msg *req_msg;
1566 req_msg = (struct cm_req_msg *)msg->mad;
1567 cm_format_req(req_msg, cm_id_priv, param);
1568 cm_id_priv->tid = req_msg->hdr.tid;
1572 cm_id_priv->local_qpn = cpu_to_be32(IBA_GET(CM_REQ_LOCAL_QPN, req_msg));
1573 cm_id_priv->rq_psn = cpu_to_be32(IBA_GET(CM_REQ_STARTING_PSN, req_msg));
1632 static bool cm_req_has_alt_path(struct cm_req_msg *req_msg)
1635 IBA_GET(CM_REQ_ALTERNATE_LOCAL_PORT_LID, req_msg))) ||
1637 req_msg))));
1649 static void cm_format_path_lid_from_req(struct cm_req_msg *req_msg,
1660 req_msg));
1663 CM_REQ_PRIMARY_LOCAL_PORT_GID, req_msg));
1667 CM_REQ_PRIMARY_REMOTE_PORT_GID, req_msg));
1671 if (!cm_req_has_alt_path(req_msg))
1677 req_msg));
1680 req_msg));
1683 CM_REQ_ALTERNATE_LOCAL_PORT_GID, req_msg));
1687 CM_REQ_ALTERNATE_REMOTE_PORT_GID, req_msg));
1692 static void cm_format_paths_from_req(struct cm_req_msg *req_msg,
1698 *IBA_GET_MEM_PTR(CM_REQ_PRIMARY_LOCAL_PORT_GID, req_msg);
1700 *IBA_GET_MEM_PTR(CM_REQ_PRIMARY_REMOTE_PORT_GID, req_msg);
1702 cpu_to_be32(IBA_GET(CM_REQ_PRIMARY_FLOW_LABEL, req_msg));
1703 primary_path->hop_limit = IBA_GET(CM_REQ_PRIMARY_HOP_LIMIT, req_msg);
1705 IBA_GET(CM_REQ_PRIMARY_TRAFFIC_CLASS, req_msg);
1708 cpu_to_be16(IBA_GET(CM_REQ_PARTITION_KEY, req_msg));
1709 primary_path->sl = IBA_GET(CM_REQ_PRIMARY_SL, req_msg);
1711 primary_path->mtu = IBA_GET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg);
1713 primary_path->rate = IBA_GET(CM_REQ_PRIMARY_PACKET_RATE, req_msg);
1716 IBA_GET(CM_REQ_PRIMARY_LOCAL_ACK_TIMEOUT, req_msg);
1719 cpu_to_be64(IBA_GET(CM_REQ_SERVICE_ID, req_msg));
1723 if (cm_req_has_alt_path(req_msg)) {
1725 CM_REQ_ALTERNATE_LOCAL_PORT_GID, req_msg);
1727 CM_REQ_ALTERNATE_REMOTE_PORT_GID, req_msg);
1729 IBA_GET(CM_REQ_ALTERNATE_FLOW_LABEL, req_msg));
1731 IBA_GET(CM_REQ_ALTERNATE_HOP_LIMIT, req_msg);
1733 IBA_GET(CM_REQ_ALTERNATE_TRAFFIC_CLASS, req_msg);
1736 cpu_to_be16(IBA_GET(CM_REQ_PARTITION_KEY, req_msg));
1737 alt_path->sl = IBA_GET(CM_REQ_ALTERNATE_SL, req_msg);
1740 IBA_GET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg);
1742 alt_path->rate = IBA_GET(CM_REQ_ALTERNATE_PACKET_RATE, req_msg);
1745 IBA_GET(CM_REQ_ALTERNATE_LOCAL_ACK_TIMEOUT, req_msg);
1748 cpu_to_be64(IBA_GET(CM_REQ_SERVICE_ID, req_msg));
1753 cm_format_path_lid_from_req(req_msg, primary_path, alt_path, wc);
1807 struct cm_req_msg *req_msg;
1810 req_msg = (struct cm_req_msg *)work->mad_recv_wc->recv_buf.mad;
1817 if (cm_req_has_alt_path(req_msg)) {
1824 cpu_to_be64(IBA_GET(CM_REQ_LOCAL_CA_GUID, req_msg));
1825 param->remote_qkey = IBA_GET(CM_REQ_LOCAL_Q_KEY, req_msg);
1826 param->remote_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg);
1827 param->qp_type = cm_req_get_qp_type(req_msg);
1828 param->starting_psn = IBA_GET(CM_REQ_STARTING_PSN, req_msg);
1829 param->responder_resources = IBA_GET(CM_REQ_INITIATOR_DEPTH, req_msg);
1830 param->initiator_depth = IBA_GET(CM_REQ_RESPONDER_RESOURCES, req_msg);
1832 IBA_GET(CM_REQ_REMOTE_CM_RESPONSE_TIMEOUT, req_msg);
1833 param->flow_control = IBA_GET(CM_REQ_END_TO_END_FLOW_CONTROL, req_msg);
1835 IBA_GET(CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg);
1836 param->retry_count = IBA_GET(CM_REQ_RETRY_COUNT, req_msg);
1837 param->rnr_retry_count = IBA_GET(CM_REQ_RNR_RETRY_COUNT, req_msg);
1838 param->srq = IBA_GET(CM_REQ_SRQ, req_msg);
1840 param->ece.vendor_id = IBA_GET(CM_REQ_VENDOR_ID, req_msg);
1841 param->ece.attr_mod = be32_to_cpu(req_msg->hdr.attr_mod);
1844 IBA_GET_MEM_PTR(CM_REQ_PRIVATE_DATA, req_msg);
1991 struct cm_req_msg *req_msg;
1993 req_msg = (struct cm_req_msg *)work->mad_recv_wc->recv_buf.mad;
2030 cpu_to_be64(IBA_GET(CM_REQ_SERVICE_ID, req_msg)));
2048 static void cm_process_routed_req(struct cm_req_msg *req_msg, struct ib_wc *wc)
2050 if (!IBA_GET(CM_REQ_PRIMARY_SUBNET_LOCAL, req_msg)) {
2052 req_msg)) == IB_LID_PERMISSIVE) {
2053 IBA_SET(CM_REQ_PRIMARY_LOCAL_PORT_LID, req_msg,
2055 IBA_SET(CM_REQ_PRIMARY_SL, req_msg, wc->sl);
2059 req_msg)) == IB_LID_PERMISSIVE)
2060 IBA_SET(CM_REQ_PRIMARY_REMOTE_PORT_LID, req_msg,
2064 if (!IBA_GET(CM_REQ_ALTERNATE_SUBNET_LOCAL, req_msg)) {
2066 req_msg)) == IB_LID_PERMISSIVE) {
2067 IBA_SET(CM_REQ_ALTERNATE_LOCAL_PORT_LID, req_msg,
2069 IBA_SET(CM_REQ_ALTERNATE_SL, req_msg, wc->sl);
2073 req_msg)) == IB_LID_PERMISSIVE)
2074 IBA_SET(CM_REQ_ALTERNATE_REMOTE_PORT_LID, req_msg,
2082 struct cm_req_msg *req_msg;
2087 req_msg = (struct cm_req_msg *)work->mad_recv_wc->recv_buf.mad;
2095 cpu_to_be32(IBA_GET(CM_REQ_LOCAL_COMM_ID, req_msg));
2097 cpu_to_be64(IBA_GET(CM_REQ_SERVICE_ID, req_msg));
2098 cm_id_priv->tid = req_msg->hdr.tid;
2100 IBA_GET(CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg));
2101 cm_id_priv->max_cm_retries = IBA_GET(CM_REQ_MAX_CM_RETRIES, req_msg);
2103 cpu_to_be32(IBA_GET(CM_REQ_LOCAL_QPN, req_msg));
2105 IBA_GET(CM_REQ_RESPONDER_RESOURCES, req_msg);
2107 IBA_GET(CM_REQ_INITIATOR_DEPTH, req_msg);
2108 cm_id_priv->path_mtu = IBA_GET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg);
2109 cm_id_priv->pkey = cpu_to_be16(IBA_GET(CM_REQ_PARTITION_KEY, req_msg));
2110 cm_id_priv->sq_psn = cpu_to_be32(IBA_GET(CM_REQ_STARTING_PSN, req_msg));
2111 cm_id_priv->retry_count = IBA_GET(CM_REQ_RETRY_COUNT, req_msg);
2112 cm_id_priv->rnr_retry_count = IBA_GET(CM_REQ_RNR_RETRY_COUNT, req_msg);
2113 cm_id_priv->qp_type = cm_req_get_qp_type(req_msg);
2129 cpu_to_be64(IBA_GET(CM_REQ_LOCAL_CA_GUID, req_msg));
2147 if (cm_req_has_alt_path(req_msg))
2156 cm_process_routed_req(req_msg, work->mad_recv_wc->wc);
2161 req_msg));
2163 if (cm_req_has_alt_path(req_msg))
2165 cm_format_paths_from_req(req_msg, &work->path[0],
2193 IBA_GET(CM_REQ_PRIMARY_LOCAL_PORT_LID, req_msg);
2195 if (cm_req_has_alt_path(req_msg)) {