IB/hfi1: Implement CCA for TID RDMA protocol
Currently, FECN handling is not implemented on TID RDMA expected receive packets and therefore CCA can't be turned on when TID RDMA is enabled. This patch adds the CCA support to TID RDMA protocol by: - modifying FECN RSM rule to include kernel receive contexts - For TID_RDMA READ RESP or TID RDMA ACK packet, a CNP will be sent out if the FECN bit is set. For other TID RDMA packets that generate at least one response packet, the BECN bit will be set in the first response packet - Copying expected packet data to destination buffer when FECN bit is set in the TID RDMA READ RESP or TID RDMA WRITE DATA packet. In this case, the expected packet is received as an eager packet - Handling the TID sequence error for subsequent normal expected packets. Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> Signed-off-by: Kaike Wan <kaike.wan@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:

committed by
Jason Gunthorpe

parent
8da0f0f26f
commit
747b931fbe
@@ -516,7 +516,9 @@ bool hfi1_process_ecn_slowpath(struct rvt_qp *qp, struct hfi1_packet *pkt,
|
||||
*/
|
||||
do_cnp = prescan ||
|
||||
(opcode >= IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST &&
|
||||
opcode <= IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE);
|
||||
opcode <= IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE) ||
|
||||
opcode == TID_OP(READ_RESP) ||
|
||||
opcode == TID_OP(ACK);
|
||||
|
||||
/* Call appropriate CNP handler */
|
||||
if (!ignore_fecn && do_cnp && fecn)
|
||||
|
Reference in New Issue
Block a user