> It's confusing trying to figure out who's responsible for QP transitions. In > some places, the iw_cm performs the transitions. In others, the provider is > expected to have performed them. Is there a way to make this consistent, so > that all QP transitions are initiated from the same location? It seems that > we're open to bugs if different modules drive the QP state without strict > coordination between them. >
In RDMAC verbs, the consumer -and- the provider move the QP states based on what happens. In tom's code, the IWCM is acting on behalf of the consumer. EG: The verbs say to begin an orderly "normal" close, then two consumers agree to shut down (somehow) and quiesce their SQs. Then one side transitions the QP to CLOSING, which initiates the TCP FIN. The provider on the other end of the tcp connection receives the FIN and if the local QP is quiesced, the provider transitions its QP to CLOSING and sends the FIN/ACK. Note that the consumer on one side transitioned from RTS -> CLOSING, and on the other side the provider transitioned from RTS -> CLOSING. There are other examples of this in the RDMAC verbs doc. Trying to support this doc is what is driving the IWCM state transitions vs the provider transitions. _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
