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.