draft-ietf-nfsv4-minorversion1-PAv6.txt | draft-ietf-nfsv4-minorversion1-PAv7.txt | |||
---|---|---|---|---|
NFSv4 S. Shepler | NFSv4 S. Shepler | |||
Internet-Draft M. Eisler | Internet-Draft M. Eisler | |||
Intended status: Standards Track D. Noveck | Intended status: Standards Track D. Noveck | |||
Expires: May 1, 2010 Editors | Expires: May 2, 2010 Editors | |||
October 28, 2009 | October 29, 2009 | |||
NFS Version 4 Minor Version 1 | NFS Version 4 Minor Version 1 | |||
draft-ietf-nfsv4-minorversion1-PAv6.txt | draft-ietf-nfsv4-minorversion1-PAv7.txt | |||
Status of this Memo | Status of this Memo | |||
This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted to IETF in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
Drafts. | Drafts. | |||
skipping to change at page 1, line 33 | skipping to change at page 1, line 33 | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
This Internet-Draft will expire on May 1, 2010. | This Internet-Draft will expire on May 2, 2010. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2009 IETF Trust and the persons identified as the | Copyright (c) 2009 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 26, line 50 | skipping to change at page 26, line 50 | |||
uniquely defines the client so that subsequent instances of the same | uniquely defines the client so that subsequent instances of the same | |||
client bear the same co_ownerid with a different verifier. | client bear the same co_ownerid with a different verifier. | |||
There are several considerations for how the client generates the | There are several considerations for how the client generates the | |||
co_ownerid string: | co_ownerid string: | |||
o The string should be unique so that multiple clients do not | o The string should be unique so that multiple clients do not | |||
present the same string. The consequences of two clients | present the same string. The consequences of two clients | |||
presenting the same string range from one client getting an error | presenting the same string range from one client getting an error | |||
to one client having its leased state abruptly and unexpectedly | to one client having its leased state abruptly and unexpectedly | |||
canceled. | cancelled. | |||
o The string should be selected so that subsequent incarnations | o The string should be selected so that subsequent incarnations | |||
(e.g. restarts) of the same client cause the client to present the | (e.g. restarts) of the same client cause the client to present the | |||
same string. The implementor is cautioned from an approach that | same string. The implementor is cautioned from an approach that | |||
requires the string to be recorded in a local file because this | requires the string to be recorded in a local file because this | |||
precludes the use of the implementation in an environment where | precludes the use of the implementation in an environment where | |||
there is no local disk and all file access is from an NFSv4.1 | there is no local disk and all file access is from an NFSv4.1 | |||
server. | server. | |||
o The string should be the same for each server network address that | o The string should be the same for each server network address that | |||
skipping to change at page 162, line 40 | skipping to change at page 162, line 40 | |||
sent with a READ or WRITE operation. It also may set a non-zero | sent with a READ or WRITE operation. It also may set a non-zero | |||
value in which case the server checks if that seqid is the correct | value in which case the server checks if that seqid is the correct | |||
one. In that case the server is required to return | one. In that case the server is required to return | |||
NFS4ERR_OLD_STATEID if the seqid is lower than the most current value | NFS4ERR_OLD_STATEID if the seqid is lower than the most current value | |||
and NFS4ERR_BAD_STATEID if the seqid is greater than the most current | and NFS4ERR_BAD_STATEID if the seqid is greater than the most current | |||
value. This would be the common choice in the case of stateids sent | value. This would be the common choice in the case of stateids sent | |||
with a CLOSE or OPEN_DOWNGRADE. Because OPENs may be sent in | with a CLOSE or OPEN_DOWNGRADE. Because OPENs may be sent in | |||
parallel for the same owner, a client might close a file without | parallel for the same owner, a client might close a file without | |||
knowing that an OPEN upgrade had been done by the server, changing | knowing that an OPEN upgrade had been done by the server, changing | |||
the lock in question. If CLOSE were sent with a zero seqid, the OPEN | the lock in question. If CLOSE were sent with a zero seqid, the OPEN | |||
upgrade would be canceled before the client even received an | upgrade would be cancelled before the client even received an | |||
indication that an upgrade had happened. | indication that an upgrade had happened. | |||
When a stateid is sent by the server to client as part of a callback | When a stateid is sent by the server to client as part of a callback | |||
operation, it is not subject to checking for a current seqid and | operation, it is not subject to checking for a current seqid and | |||
returning NFS4ERR_OLD_STATEID. This is because the client is not in | returning NFS4ERR_OLD_STATEID. This is because the client is not in | |||
a position to know the most up-to-date seqid and thus cannot verify | a position to know the most up-to-date seqid and thus cannot verify | |||
it. Unless specially noted, the seqid value for a stateid sent by | it. Unless specially noted, the seqid value for a stateid sent by | |||
the server to the client as part of a callback is required to be zero | the server to the client as part of a callback is required to be zero | |||
with NFS4ERR_BAD_STATEID returned if it is not. | with NFS4ERR_BAD_STATEID returned if it is not. | |||
skipping to change at page 445, line 28 | skipping to change at page 445, line 28 | |||
}; | }; | |||
enum why_no_delegation4 { /* new to v4.1 */ | enum why_no_delegation4 { /* new to v4.1 */ | |||
WND4_NOT_WANTED = 0, | WND4_NOT_WANTED = 0, | |||
WND4_CONTENTION = 1, | WND4_CONTENTION = 1, | |||
WND4_RESOURCE = 2, | WND4_RESOURCE = 2, | |||
WND4_NOT_SUPP_FTYPE = 3, | WND4_NOT_SUPP_FTYPE = 3, | |||
WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4, | WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4, | |||
WND4_NOT_SUPP_UPGRADE = 5, | WND4_NOT_SUPP_UPGRADE = 5, | |||
WND4_NOT_SUPP_DOWNGRADE = 6, | WND4_NOT_SUPP_DOWNGRADE = 6, | |||
WND4_CANCELED = 7, | WND4_CANCELLED = 7, | |||
WND4_IS_DIR = 8 | WND4_IS_DIR = 8 | |||
}; | }; | |||
union open_none_delegation4 /* new to v4.1 */ | union open_none_delegation4 /* new to v4.1 */ | |||
switch (why_no_delegation4 ond_why) { | switch (why_no_delegation4 ond_why) { | |||
case WND4_CONTENTION: | case WND4_CONTENTION: | |||
bool ond_server_will_push_deleg; | bool ond_server_will_push_deleg; | |||
case WND4_RESOURCE: | case WND4_RESOURCE: | |||
bool ond_server_will_signal_avail; | bool ond_server_will_signal_avail; | |||
default: | default: | |||
skipping to change at page 453, line 40 | skipping to change at page 453, line 40 | |||
WND4_WRITE_DELEG_NOT_SUPP_FTYPE The server does not support write | WND4_WRITE_DELEG_NOT_SUPP_FTYPE The server does not support write | |||
delegations on this file type. | delegations on this file type. | |||
WND4_NOT_SUPP_UPGRADE The server does not support atomic upgrade of | WND4_NOT_SUPP_UPGRADE The server does not support atomic upgrade of | |||
a read delegation to a write delegation. | a read delegation to a write delegation. | |||
WND4_NOT_SUPP_DOWNGRADE The server does not support atomic downgrade | WND4_NOT_SUPP_DOWNGRADE The server does not support atomic downgrade | |||
of a write delegation to a read delegation. | of a write delegation to a read delegation. | |||
WND4_CANCELED The client specified OPEN4_SHARE_ACCESS_WANT_CANCEL | WND4_CANCELLED The client specified OPEN4_SHARE_ACCESS_WANT_CANCEL | |||
and now any "want" for this file object is cancelled. | and now any "want" for this file object is cancelled. | |||
WND4_IS_DIR The specified file object is a directory, and the | WND4_IS_DIR The specified file object is a directory, and the | |||
operation is OPEN or WANT_DELEGATION which do not support | operation is OPEN or WANT_DELEGATION which do not support | |||
delegations on directories. | delegations on directories. | |||
OPEN4_SHARE_ACCESS_WANT_READ_DELEG, | OPEN4_SHARE_ACCESS_WANT_READ_DELEG, | |||
OPEN_SHARE_ACCESS_WANT_WRITE_DELEG, or | OPEN_SHARE_ACCESS_WANT_WRITE_DELEG, or | |||
OPEN_SHARE_ACCESS_WANT_ANY_DELEG mean, respectively, the client wants | OPEN_SHARE_ACCESS_WANT_ANY_DELEG mean, respectively, the client wants | |||
a read, write, or any delegation regardless which of | a read, write, or any delegation regardless which of | |||
skipping to change at page 589, line 38 | skipping to change at page 589, line 38 | |||
client could mistakenly free too many. | client could mistakenly free too many. | |||
If resource demands prompt it, the server may send another | If resource demands prompt it, the server may send another | |||
CB_RECALL_ANY with a lower count, even it has not yet received an | CB_RECALL_ANY with a lower count, even it has not yet received an | |||
acknowledgement from the client for a previous CB_RECALL_ANY with the | acknowledgement from the client for a previous CB_RECALL_ANY with the | |||
same type mask. Although the possibility exists that these will be | same type mask. Although the possibility exists that these will be | |||
received by the client in a order different from the order in which | received by the client in a order different from the order in which | |||
they were sent, any such permutation of the callback stream is | they were sent, any such permutation of the callback stream is | |||
harmless. It is the job of the client to bring down the size of the | harmless. It is the job of the client to bring down the size of the | |||
recallable object set in line with each CB_RECALL_ANY received and | recallable object set in line with each CB_RECALL_ANY received and | |||
until that obligation is met it cannot be canceled or modified by any | until that obligation is met it cannot be cancelled or modified by | |||
subsequent CB_RECALL_ANY for the same type mask. Thus if the server | any subsequent CB_RECALL_ANY for the same type mask. Thus if the | |||
sends two CB_RECALL_ANY's, the effect will be the same as if the | server sends two CB_RECALL_ANY's, the effect will be the same as if | |||
lower count was sent, whatever the order of recall receipt. Note | the lower count was sent, whatever the order of recall receipt. Note | |||
that this means that a server may not cancel the effect of a | that this means that a server may not cancel the effect of a | |||
CB_RECALL_ANY by sending another recall with a higher count. When a | CB_RECALL_ANY by sending another recall with a higher count. When a | |||
CB_RECALL_ANY is received and the count is already within the limit | CB_RECALL_ANY is received and the count is already within the limit | |||
set or is above a limit that the client is working to get down to, | set or is above a limit that the client is working to get down to, | |||
that callback has no effect. | that callback has no effect. | |||
Servers are generally free not to give out recallable objects when | Servers are generally free not to give out recallable objects when | |||
insufficient resources are available. Note that the effect of such a | insufficient resources are available. Note that the effect of such a | |||
policy is implicitly to give precedence to existing objects relative | policy is implicitly to give precedence to existing objects relative | |||
to requested ones, with the result that resources might not be | to requested ones, with the result that resources might not be | |||
skipping to change at page 595, line 15 | skipping to change at page 595, line 15 | |||
20.10.2. RESULT | 20.10.2. RESULT | |||
struct CB_WANTS_CANCELLED4res { | struct CB_WANTS_CANCELLED4res { | |||
nfsstat4 cwcr_status; | nfsstat4 cwcr_status; | |||
}; | }; | |||
20.10.3. DESCRIPTION | 20.10.3. DESCRIPTION | |||
The CB_WANTS_CANCELLED operation is used to notify the client that | The CB_WANTS_CANCELLED operation is used to notify the client that | |||
the some or all wants it registered for recallable delegations and | the some or all wants it registered for recallable delegations and | |||
layouts have been canceled. | layouts have been cancelled. | |||
If cwca_contended_wants_cancelled is TRUE, this indicates the server | If cwca_contended_wants_cancelled is TRUE, this indicates the server | |||
will not be pushing to the client any delegations that become | will not be pushing to the client any delegations that become | |||
available after contention passes. | available after contention passes. | |||
If cwca_resourced_wants_cancelled is TRUE, this indicates the server | If cwca_resourced_wants_cancelled is TRUE, this indicates the server | |||
will not notify the client when there are resources on the server to | will not notify the client when there are resources on the server to | |||
grant delegations or layouts. | grant delegations or layouts. | |||
After receiving a CB_WANTS_CANCELLED operation, the client is free to | After receiving a CB_WANTS_CANCELLED operation, the client is free to | |||
End of changes. 9 change blocks. | ||||
13 lines changed or deleted | 13 lines changed or added | |||
This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |