> @@ -726,6 +726,10 @@ int rxe_qp_from_attr(struct rxe_qp *qp, struct ib_qp_attr *attr, int mask, > > case IB_QPS_RTR: > pr_debug("qp#%d state -> RTR\n", qp_num(qp)); > + qp->src_port = RXE_ROCE_V2_SPORT + > + (hash_64_generic > + (((u64)qp->attr.dest_qp_num << 24) + > + (u64)qp_num(qp), 14) & 0x3fff); Works for RC/UC but not for UD. At this point (mask & IB_QP_DEST_QPN) is false for UD transport. I think that you need to do similar work in rxe_requester() before sending a packet to UD QP. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html