3.3.4.6 Establishing a Connection Session
Connections are established through the FrsRpcSendCommPkt calls:
The connection session establishment process is started when the downstream partner sends out CMD_NEED_JOIN.
Upon receiving CMD_NEED_JOIN, the upstream partner MUST reply by sending out CMD_START_JOIN to the downstream partner. The upstream partner can also start the process by sending out CMD_START_JOIN directly.
Upon receiving CMD_START_JOIN, the downstream partner MUST reply by sending out CMD_JOINING to the upstream partner. (See section 3.3.4.4.3.)
Upon receiving CMD_JOINING, the upstream partner MUST send out CMD_JOINED to the downstream partner. (See section 3.3.4.4.4.)
Upon receiving CMD_JOINED, the downstream partner knows the connection is fully established and the upstream partner MUST start the Version Vector Join (VVJoin).
The partner MUST reply in a certain time frame or the process MUST fail.<87>
To send out a CMD_NEED_JOIN packet from the downstream partner:
COMM_BOP: 0.
COMM_COMMAND: 0x121 (CMD_NEED_JOIN).
COMM_TO:
GUID: MUST be the objectGuid of the upstream partner NTFRS member object.
Name: MUST be the DNS host name of the upstream partner.
COMM_FROM:
GUID: MUST be the objectGuid of the local member NTFRS member object.
Name: MUST be the host name of the local member.
COMM_REPLICA:
GUID: MUST be the objectGuid of the upstream partner NTFRS member object.
Name: MUST be the name of the NTFRS replica set object.
COMM_CXTION:
GUID: MUST be the inbound connection GUID.
Name: MUST be the upstream partner DNS host name (fully qualified domain name).
COMM_JOIN_GUID: MUST be 0.
COMM_LAST_JOIN_TIME: MUST be 0x1.
COMM_EOP: ff ff ff ff.
To send out a CMD_START_JOIN packet from the upstream partner:
COMM_BOP: 0.
COMM_COMMAND: 0x122 (CMD_START_JOIN).
COMM_TO:
GUID: MUST be the objectGuid of the downstream partner inbound connection object.
Name: MUST be the DNS host name of the downstream partner.
COMM_FROM:
GUID: MUST be the objectGuid of the local member NTFRS member object.
Name: MUST be the host name of the local member.
COMM_REPLICA:
GUID: MUST be the objectGuid of the downstream partner NTFRS member object.
Name: MUST be the name of the NTFRS replica set object.
COMM_CXTION:
GUID: MUST be the outbound connection GUID.
Name: MUST be the downstream partner DNS host name (fully qualified domain name).
COMM_JOIN_GUID: MUST be 0.
COMM_LAST_JOIN_TIME: MUST be 1.
COMM_EOP: ff ff ff ff.