RE: MPA issue (3): Rejected Connection bit

"Caitlin Bestler" <[email protected]>
Newsgroups gmane.ietf.rddp
Message-ID <[email protected]>
Carrier, John said:
> I guess I would like to hear a clarification for how the rejected bit
> would be used.
>
> In the startup scenarios described in the MPA draft, when the MPA
> Responder sends the MPA Reply Frame, the responder 'binds' DDP to MPA so
> that, after sending the reply frame, the MPA Responder will be ready to
> receive FPDUs and pass them to DDP.  If the Request Frame is invalid or if
> the private data is unacceptable, then the ULP should close the connection
> without sending a Reply Frame.
>
> Adding the rejected bit enables the ULP to send a Reply Frame without
> binding DDP to MPA.  The Reply Frame may also contain private data that
> further describes why the request was rejected.
>
Exactly.

The typical use is when the private data sent by the active side was
unacceptable to the passive side, or for some other ULP reason the
connection is not to proceed further.

This capability is assumed by RDMA-aware APIs such as uDAPL and
IT-API. Without this capability they must simulate the rejection bit
by sending options that they know will be rejected. An "honest"
reject bit is a far cleaner solution.

>
> If that is the intent, then what should the state of MPA be after sending
> the Reply Frame with the rejected bit set?  Does it return to 'responder
> mode' so that the Initiator can resend the MPA Request Frame or does it
> transition to a new state where it drops any received data while it waits
> for the ULP to close the connection?
>

To be technically precise, it means that the TCP connection does not
enter the MPA state. What, if anything, happens to the TCP connection
after that might not be in scope (unless someone has a strong reason
why something should be specified).

For both uDAPL and IT-API (so far) the connection should be torn down.
But in those contexts the LLP connection was created "under the covers"
by the API layer for the purpose of supporting an Endpoint.

There will likely be API extensions that expose the LLP connection,
allowing the applicication to request that this TCP connection be used
to initiate an MPA connection for this endpoint. In that case I suppose
it would be slightly preferable for a failure to leave the TCP connection
intact in case the application wishes to continue in non-MPA mode.

But if we were to decide that the reject bit mandated a TCP disconnect,
there would be numerous methods available to an "optional RDMA:"
application to determine the mode that will succeed *before* sending
MPA Start frames.

The intent of the bit is to optimize the large class of applications that
know they will be using RDMA from the start, and wish to engage in
a simple negotiation before proceeding or terminating the connection.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.