[openib-general] [PATCH 2/2] ib_cm: fix REJ due to invalid GID

Sean Hefty mshefty at ichips.intel.com
Tue Jul 18 12:21:07 PDT 2006


Arne Redlich wrote:
> Yep - the Gen1 SRP initiator does. It sends a REQ with an invalid DGID.
> If rejected with the correct code (INVALID GID), it will retry after
> looking up the GID.

Didn't it have a DGID from a path record that it had to get before sending the REQ?

>>> 	cm_format_paths_from_req(req_msg, &work->path[0], &work->path[1]);
>>> 	ret = cm_init_av_by_path(&work->path[0], &cm_id_priv->av);
>>>-	if (ret)
>>>+	if (ret) {
>>>+		cm_issue_rej(work->port, work->mad_recv_wc, IB_CM_INVALID_GID,
>>>+			     CM_MSG_RESPONSE_REQ, NULL, 0);
>>>+		reject = 0;
>>> 		goto error3;
>>>+	}
>>> 	if (req_msg->alt_local_lid) {
>>> 		ret = cm_init_av_by_path(&work->path[1], &cm_id_priv->alt_av);
>>>-		if (ret)
>>>+		if (ret) {
>>>+			cm_issue_rej(work->port, work->mad_recv_wc,
>>>+				     IB_CM_INVALID_ALT_GID, CM_MSG_RESPONSE_REQ,
>>>+				     NULL, 0);
>>>+			reject = 0;
>>> 			goto error3;

I missed this before, but the reject message must also contain a valid GID in 
the ARI data.

I'm working on a patch based on the changes above to try to fix this.

- Sean




More information about the general mailing list