[ofa-general] RFCv2: SRC API
Tang, Changqing
changquing.tang at hp.com
Mon Aug 6 08:30:33 PDT 2007
> +When job j1 needs to transmit to job j2 on remote node n for
> the first time:
> +1. Test: does job j1 have an existing connection to some job
> on node n?
> + - If no:
> + j1 creates an SRC QP qp1 (send QP)
> + qp1 is only used to post send WRs
> + j2 creates an SRC QP qp2
> + qp2 is part of SRC domain
> + qp2 is only used to do transport checks:
> + neither send nor receive WRs
> are posted on qp2
> + j1 and j2 create a connection between qp1 and qp2
> + - If yes:
> + let qp1 be the QP which belongs to j1 and is connected
> + to some qp on node n
> +
> +2. j1 gets SRQ number from j2
> +3. j1 can now use QP qp2 from step 1
> + and SRQ number from step 3 to send data to j2
> +
> +Cleanup:
> +When job j1 does not need to communicate to any jobs on node n, it
> +disconnects qp1 from qp2, and asks j2 to destroy qp2.
Suppose remote node n has j2/qp2, j3/qp3, j4/qp4, qp1 on j1 is connected
to qp2, then there is no need to make connection between qp1 and qp3,
qp1 and qp4, there are automatically connected, right ? Then how can j3
know that j2 has connected to j1, it does not need to make connection
again ?
qp1 find destination by SRQ number only, so "+3. j1 can now use QP qp2
from step 1", what does it mean ?
Can we destroy qp2 on j2 first, and keep j1 and j3 continue to
communicate ?
--CQ
More information about the general
mailing list