2020-01-29 17:13:04

by Olga Kornievskaia

[permalink] [raw]
Subject: question about nconnect implementation

Hi Trond,

Correct me if I'm wrong but I believe currently the client will never
bind new (nconnect) connections to an existing session until it gets
an error CONN_NOT_BOUND_TO_SESSION, is that correct?
nfs4_proc_bind_conn_to_session() that iterates over the transports is
only called nfs4state's nfs4_bind_conn_to_session when cl_stat's flag
of BIND_CONN_TO_SESSION is set and it's set on error handling of
CONN_NOT_BOUND.

Is the reason client not explicitly sending BIND_CONN_TO_SESSION
before sending other operations is because client (implements)
specifies "no state protection" for the client? And according to the
spec if no state protection is used then just sending a SEQUENCE on a
new connection is sufficient to create an association between that
connection and the session?

Thank you.


2020-01-29 17:58:03

by Trond Myklebust

[permalink] [raw]
Subject: Re: question about nconnect implementation

On Wed, 2020-01-29 at 12:12 -0500, Olga Kornievskaia wrote:
> Hi Trond,
>
> Correct me if I'm wrong but I believe currently the client will never
> bind new (nconnect) connections to an existing session until it gets
> an error CONN_NOT_BOUND_TO_SESSION, is that correct?
> nfs4_proc_bind_conn_to_session() that iterates over the transports is
> only called nfs4state's nfs4_bind_conn_to_session when cl_stat's flag
> of BIND_CONN_TO_SESSION is set and it's set on error handling of
> CONN_NOT_BOUND.
>
> Is the reason client not explicitly sending BIND_CONN_TO_SESSION
> before sending other operations is because client (implements)
> specifies "no state protection" for the client? And according to the
> spec if no state protection is used then just sending a SEQUENCE on a
> new connection is sufficient to create an association between that
> connection and the session?
>
> Thank you.

It is that, and it is also because despite all the verbiage in the
RFCs, most people are using NFSv4.x with AUTH_SYS, for which we use
SP4_NONE protection. That does not require use of BIND_CONN_TO_SESSION
with new connections.

--
Trond Myklebust
Linux NFS client maintainer, Hammerspace
[email protected]