RE: [PATCH for-next] IB/cma: Introduce rdma_set_min_rnr_timer()

Parav Pandit
2021-04-01T04:09:53Z

> From: Jason Gunthorpe <jgg@nvidia.com>
> Sent: Wednesday, March 31, 2021 11:20 PM
>
> On Wed, Mar 31, 2021 at 05:45:30PM +0000, Haakon Bugge wrote:
>
> > True. Local ACK Timeout is part of CM REQ. But that makes
> > 2c1619edef61 ("IB/cma: Define option to set ack timeout and pack
> > tos_set") fuzzy, as it claims in the commentary: "The timeout will
> > affect the local side of the QP, it is not negotiated with remote side
> > ..."
>
> Hmm, is it intended to replace the CM provided local ack timeout on the
> responder side?
>
> It doesn't look like it copied into the MAD though, and the qp_attr->timeout
> only looks like it is et for the IB_QPT_XRC_TGT case??
>
> Very confusing indeed. Parav?
It is copied in core/cm.c at CM_REQ_PRIMARY_LOCAL_ACK_TIMEOUT in cm_format_req() with consideration of primary path packet_life_time.
Primary path packet lifetime is filled from cm_id.timeout -> path_rec.packet_life_time.

Comment says its not negotiated, because spec doesn't mandate to honor this value on passive side.
And connection doesn't fail if passive side doesn't like. So it's not negotiated.
But it indicates what ack timeout (and retries) to expect for a connection when one looks at the connection trace in wireshark.