3.1.5.3 Sending a Negotiate Response Message

In response to a Negotiate Request message as specified in section 3.1.5.6, the second message sent on the connection is the Negotiation Response message as specified in section 2.2.2. The caller passes the Connection to use for the Send message, and the Status field to return to the peer. The message fields are set as follows:

  • MinVersion MUST be set to 0x0100.

  • MaxVersion MUST be set to 0x0100.

  • Reserved MUST be set to 0x0000.

  • Status MUST be set to the passed-in Status parameter.

If the Status field is not equal to 0x00000000, all fields in the message not set above MUST be set to 0x0000. The message MUST be posted to the RDMA provider in an implementation-specific manner, and a graceful termination of the connection SHOULD be performed.

Otherwise, a successful Negotiate Response is built with fields set as follows:

  • NegotiatedVersion MUST be set to Connection.ProtocolVersion.

  • CreditsRequested SHOULD be set to Connection.SendCreditTarget.

  • CreditsGranted MUST be set to Connection.ReceiveCredits.

  • MaxReadWriteSize MUST be set to Connection.MaxReadWriteSize.

  • PreferredSendSize MUST be set to Connection.MaxSendSize.

  • MaxReceiveSize MUST be set to Connection.MaxReceiveSize.

  • MaxFragmentedSize MUST be set to Connection.MaxFragmentedRecvSize.

The sender MUST post the message to the RDMA provider in an implementation-specific manner, and the returned result MUST be returned to the caller.