With the latest patch, most of the reject receive handling in the CM should be in place. Currently, the handling simply involves passing the message up to the user and transitioning the cm_id to the correct state. Specifically:

* code 6 - invalid comm id -- Possibly indicates a remote system reboot? The user will receive the REJ failure to whatever message it was trying to send.

* code 7 - invalid comm instance -- Seems like it could only happen when sending a DREQ. The current code should handle this as a normal part of receiving a REJ in the DREQ sent state.

* code 10 - stale connection -- The recipient of the REJ enters the timewait state. There's nothing to handle the cm_id on the side of that detected the stale connection.

* code 24 - port/CM redirection -- Reject is passed to the user.

* code 25 - port redirection -- Currently just passed to the user. I thought about adding in a cm_path field to the CM messages, but deferred this for now.

* code 30 - duplicate local comm id -- Possibly indicates a local system reboot? Not sure what else can be done beyond passing rejection to the user.

* code 31 - unsupported class version -- I didn't look at what it would take to handle multiple CM versions, so I'm not sure if doing this would require API changes or not.

Comments? My short-term plan is to implement sending CM issued reject messages for things like stale connections and invalid IDs.

- Sean
_______________________________________________
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to