3.1.4.1 Connecting to the Peer
When the upper layer requests that the protocol initiate a connection to a remote peer, it passes the address of the remote peer to connect to, and the initiator MUST:
Create a new Connection.
Set Connection.Role to "ACTIVE".
Use implementation-specific means to create a new Connection.Endpoint.
Determine an initial value for Connection.ReceiveCreditMax, Connection.SendCreditTarget, Connection.MaxSendSize, Connection.MaxFragmentedRecvSize, Connection.MaxReceiveSize and Connection.KeepaliveInterval.<2>
Set Connection.MaxReadWriteSize to 0.
Set Connection.KeepaliveRequested to "NONE".
Set Connection.Protocol, Connection.SendCredits, Connection.ReceiveCredits, and Connection.FragmentReassemblyRemaining to 0.
Set Connection.SendQueue, Connection.FragmentReassemblyBuffer, and Connection.InvalidatedToken to empty.
Set Connection.SendImmediate to FALSE.
Start a Negotiation Timer of 120 seconds.
Post one receive buffer of at least 512 bytes.
Request a connection to the specified remote peer.
If the connection request fails, the resulting error MUST be returned to the upper layer. If the connection request succeeds, the initiator MUST send a Negotiate Request message as specified in section 3.1.5.2.
If the negotiation is successful, an implementation-defined representation of the Connection is returned to the upper layer as specified in section 3.1.5.4. If unsuccessful, an implementation-specific local error is returned.