Subject: [nfsv4] More stuff for draft-ietf-nfsv4-minorversion2-40

From: David Noveck <[email-masked]>
Date: Wed, 11 Nov 2015 15:28:55 -0500

*Stuff in Section 13:*

In this case what, is specified in Sections 4 and 13 is not consistent.
Since I believe that what is stated in Section 4 is better, I suggest that:

   - OFFLOAD_CANCEL should be listed as COPYer (OPT), COPYra (OPT)
   - OFFLOAD_STATUS should be listed as COPYer (OPT), COPYra (OPT)

*Stuff in Section 4:*

   - *I suggest rewriting the first paragraph of Section 4.1 as follows:*

The server-side copy features provide mechanisms which allow an NFS client
to copy file data on a server or between two servers without the data being
transmitted back and forth over the network through the NFS client.
Without these features, an NFS client would copy data from one location to
another by reading the data from the source server over the network, and
then writing the data back over the network to the destination server.

   - I suggest adding the following new paragraph after the first paragraph
   of Section 4.2:

In addition, the CLONE operation provides copy-like functionality in the
intra-sever case which is both synchronous and atomic, in that other
operations may not see the target file in any state between that before the
clone operation and after it

   - I suggest replacing the existing second paragraph of Section 4.2 by
   the following:

The new operations are designed to copy files or regions within them.
Other file system objects can be copied by building on these operations or
using other techniques.  For example, if a user wishes to copy a directory,
the client can synthesize a directory copy operation by first creating the
destination directory and the individual (empty) files within it, and then
copying the contents of the source directory's files to files in the new
destination directory.

   - I suggest adding the following to Section 4.2.1 (Not sure where it
   belongs):

CLONE: Provides a intra-server copy-like operation which is both
synchronous and atomic. (Section 15.13)

   - I suggest replacing the first five paragraphs of Section 4.2.2 by the
   following:

Three OPTIONAL features are provided relative to server-side copy. A server
may choose independently to implement any of them.  A server implementing
any of these features may be REQUIRED to implement certain operations.
Other operations are OPTIONAL in the context of a particular feature (See
Section 13), but may become REQUIRED depending on server behavior.  Clients
need to use these operations to successfully copy a file.

For a client to do an intra-server file copy, it needs to use either the
COPY or the CLONE operation.  If COPY is used the client MUST support the
CB_OFFLOAD operation.  If COPY is used and it returns a stateid, then the
client MAY use the OFFLOAD_CANCEL and OFFLOAD_STATUS operations.

For a client to do an inter-server file copy, then it needs to use the COPY
and COPY_NOTIFY operations and MUST support the CB_OFFLOAD operation. If
COPY returns a stateid, then the client MAY use the OFFLOAD_CANCEL and
OFFLOAD_STATUS operations.

If a server supports intra-server copy feature, then the server MUST
support the COPY operation.  If a server's COPY operation returns a
stateid, then the server MUST also support these operations:
CB_OFFLOAD, OFFLOAD_CANCEL, and OFFLOAD_STATUS.

If a server supports the clone feature, then it MUST support the CLONE
operations and the clone_blksize attribute on any filesystem on which CLONE
is supported (as either source or destination file).

If a source server supports inter-server copy feature, then it MUST support
the operations COPY_NOTIFY and OFFLOAD_CANCEL. If a destination server
supports inter-server copy feature, then it MUST support the COPY
operation.  If a destination server's COPY operation returns a stateid,
then the destination server MUST also support these operations: CB_OFFLOAD,
OFFLOAD_CANCEL, COPY_NOTIFY, and OFFLOAD_STATUS.

---

From: Tom Haynes <[email-masked]>
Date: Wed, 18 Nov 2015 15:59:12 -0800

Hi Dave,

Thanks for the suggested changes!

Tom

> On Nov 11, 2015, at 12:28 PM, David Noveck <[email-masked]> wrote:
> 
> Stuff in Section 13:
> 
> In this case what, is specified in Sections 4 and 13 is not consistent.  Since I believe that what is stated in Section 4 is better, I suggest that:
> 
> 
> OFFLOAD_CANCEL should be listed as COPYer (OPT), COPYra (OPT)
> OFFLOAD_STATUS should be listed as COPYer (OPT), COPYra (OPT)

I was going to argue, but I see Section 4 as is already contradicts me.

Changed...

> 
> Stuff in Section 4:
> 
> 
> I suggest rewriting the first paragraph of Section 4.1 as follows:
> The server-side copy features provide mechanisms which allow an NFS client to copy file data on a server or between two servers without the data being transmitted back and forth over the network through the NFS client.  Without these features, an NFS client would copy data from one location to another by reading the data from the source server over the network, and then writing the data back over the network to the destination server.
> 
> 

Done

> I suggest adding the following new paragraph after the first paragraph of Section 4.2:
> 
> In addition, the CLONE operation provides copy-like functionality in the intra-sever case which is both synchronous and atomic, in that other operations may not see the target file in any state between that before the clone operation and after it
> 
> 
> 

Done

> I suggest replacing the existing second paragraph of Section 4.2 by the following:
> 
> The new operations are designed to copy files or regions within them.  Other file system objects can be copied by building on these operations or using other techniques.  For example, if a user wishes to copy a directory, the client can synthesize a directory copy operation by first creating the destination directory and the individual (empty) files within it, and then copying the contents of the source directory's files to files in the new destination directory.
> 
> 

I think you mean 3rd paragraph. — done

> 
> I suggest adding the following to Section 4.2.1 (Not sure where it belongs):
> 
> CLONE: Provides a intra-server copy-like operation which is both synchronous and atomic. (Section 15.13) 
> 
> 

Yes, but went with:

            Used by the client to request an synchronous atomic
            copy-like operation.  (<xref target="op:clone" />)

> 
> I suggest replacing the first five paragraphs of Section 4.2.2 by the following:
> 
> Three OPTIONAL features are provided relative to server-side copy. A server may choose independently to implement any of them.  A server implementing any of these features may be REQUIRED to implement certain operations.  Other operations are OPTIONAL in the context of a particular feature (See Section 13), but may become REQUIRED depending on server behavior.  Clients need to use these operations to successfully copy a file. 
> For a client to do an intra-server file copy, it needs to use either the COPY or the CLONE operation.  If COPY is used the client MUST support the CB_OFFLOAD operation.  If COPY is used and it returns a stateid, then the client MAY use the OFFLOAD_CANCEL and OFFLOAD_STATUS operations.
> For a client to do an inter-server file copy, then it needs to use the COPY and COPY_NOTIFY operations and MUST support the CB_OFFLOAD operation. If COPY returns a stateid, then the client MAY use the OFFLOAD_CANCEL and OFFLOAD_STATUS operations.
> If a server supports intra-server copy feature, then the server MUST support the COPY operation.  If a server's COPY operation returns a stateid, then the server MUST also support these operations: CB_OFFLOAD, OFFLOAD_CANCEL, and OFFLOAD_STATUS.
> 
> If a server supports the clone feature, then it MUST support the CLONE operations and the clone_blksize attribute on any filesystem on which CLONE is supported (as either source or destination file).
> If a source server supports inter-server copy feature, then it MUST support the operations COPY_NOTIFY and OFFLOAD_CANCEL. If a destination server supports inter-server copy feature, then it MUST support the COPY operation.  If a destination server's COPY operation returns a stateid, then the destination server MUST also support these operations: CB_OFFLOAD, OFFLOAD_CANCEL, COPY_NOTIFY, and OFFLOAD_STATUS.
> 
> 
> 
Changed

I’ll be pushing out a new version…

---

From: Thomas Haynes <[email-masked]>
Date: Wed, 18 Nov 2015 22:20:46 -0800

> On Nov 18, 2015, at 3:59 PM, Tom Haynes <[email-masked]> wrote:
> Changed
> 

Actually, with the state of the draft, I’ll wait for Martin’s approval before I update.