Subject: [nfsv4] Proposed spec changes for issue 52

From: "Noveck, Dave" <[email-masked]>
Date: Sun, 10 Dec 2006 07:33:31 -0500

This addresses a way for the client to indicate its capabilities with
regard to migration.

These are in the form of context diffs for the changed .xml and .x in
the CVS repository for the spec. The base revision for both files is the
same as went into draft-08.

Index: nfsv41_middle_op_exchange_id.xml
===================================================================
RCS file: /cvs/stdk/NFSv41/nfsv41_middle_op_exchange_id.xml,v
retrieving revision 1.1
diff -C5 -r1.1 nfsv41_middle_op_exchange_id.xml
*** nfsv41_middle_op_exchange_id.xml	20 Oct 2006 16:58:30 -0000
1.1
--- nfsv41_middle_op_exchange_id.xml	10 Dec 2006 12:17:44 -0000
***************
*** 27,36 ****
--- 27,77 ----
        and the returned sequenceid must first be used as an argument to
CREATE_SESSION.
      </t>
      <t>
        EXCHANGE_ID MUST not be sent to pNFS data servers.
      </t>
+     <t>
+       The flags passed as part of the arguments to the EXCHANGE_ID
operation
+       allow the client to inform the server of certain capabilities of
the
+       client implementation.  Bits not defined above should not be set
in the
+       eia_flags field.  If they are, the server MUST reject the
operation with
+       NFS4ERR_INVAL.
+     </t>
+     <t>
+       When the EXCHGID_FLAG_SUPP_MOVED_REFER is set, the client
indicates that
+       it is capable of dealing with an NFS4ERR_MOVED error as part of
a referral
+       sequence.  When this bit is not set, it is still legal for the
server to
+       perform a referral sequence.  However, a server may use the fact
that
+       the client is incapable of correctly responding to a referral,
by
+       avoiding it for that particular client.  It may, for instance,
act as
+       a proxy for that particular file system, at some cost in
performance,
+       although it is not obligated to do so.
+     </t>
+     <t>
+       When the EXCHGID_FLAG_SUPP_MOVED_MIGR is set, the client
indicates that
+       it is capable of dealing with an NFS4ERR_MOVED error as part of
a 
+       filesystem migration sequence.  When this bit is not set, it is
still 
+       legal for the server to indicate that a filesystem has moved,
when
+       this in fact happens.  However, a server may use the fact that
+       the client is incapable of correctly responding to a migration 
+       in its scheduling of filesystems to migrate so as to avoid
migration
+       of filesystems being actively used.  It may also hide actual
migrations
+       from clients unable to deal with them by acting as
+       a proxy for a migrated file system for particular clients, at
some cost 
+       in performance,
+       although it is not obligated to do so.
+     </t>
+     <t>
+       The capabilties indicated in the flags word apply to all
sessions 
+       created for the resulting clientid and are presumed by the
server to
+       remain valid until a new client instance with the same 
+       client instance string does an EXCHANGE_ID.
+       The server may update its view of such capabilties when a new
EXCHANGE_ID
+       is done by the same client instance but clients should not
depend
+       upon such an update being effective until the server receives an
+       EXCHANGE_ID for a new client instance.
+     </t>
    </section>
    <section toc="exclude" anchor="OP_EXCHANGE_ID_IMPLEMENTATION"
title="IMPLEMENTATION">
      <t>
        A server's client record is a 5-tuple:
      </t>
Index: dotx.d/exchange_id_args.x
===================================================================
RCS file: /cvs/stdk/NFSv41/dotx.d/exchange_id_args.x,v
retrieving revision 1.1
diff -C5 -r1.1 exchange_id_args.x
*** dotx.d/exchange_id_args.x	20 Oct 2006 16:58:33 -0000	1.1
--- dotx.d/exchange_id_args.x	10 Dec 2006 12:17:45 -0000
***************
*** 1,4 ****
--- 1,8 ----
+ const EXCHGID_FLAG_SUPP_MOVED_REFER 	= 0x00000001;
+ const EXCHGID_FLAG_SUPP_MOVED_MIGR 	= 0x00000002;
+ 
  struct EXCHANGE_ID4args {
  	client_owner4	eia_clientowner;
+         uint32_t        eia_flags;
  };

_______________________________________________
nfsv4 mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/nfsv4