xref: /openbmc/linux/Documentation/filesystems/nfs/nfs41-server.rst (revision ead5d1f4d877e92c051e1a1ade623d0d30e71619)
1*04f81fb0SDaniel W. S. Almeida=============================
2*04f81fb0SDaniel W. S. AlmeidaNFSv4.1 Server Implementation
3*04f81fb0SDaniel W. S. Almeida=============================
4*04f81fb0SDaniel W. S. Almeida
5*04f81fb0SDaniel W. S. AlmeidaServer support for minorversion 1 can be controlled using the
6*04f81fb0SDaniel W. S. Almeida/proc/fs/nfsd/versions control file.  The string output returned
7*04f81fb0SDaniel W. S. Almeidaby reading this file will contain either "+4.1" or "-4.1"
8*04f81fb0SDaniel W. S. Almeidacorrespondingly.
9*04f81fb0SDaniel W. S. Almeida
10*04f81fb0SDaniel W. S. AlmeidaCurrently, server support for minorversion 1 is enabled by default.
11*04f81fb0SDaniel W. S. AlmeidaIt can be disabled at run time by writing the string "-4.1" to
12*04f81fb0SDaniel W. S. Almeidathe /proc/fs/nfsd/versions control file.  Note that to write this
13*04f81fb0SDaniel W. S. Almeidacontrol file, the nfsd service must be taken down.  You can use rpc.nfsd
14*04f81fb0SDaniel W. S. Almeidafor this; see rpc.nfsd(8).
15*04f81fb0SDaniel W. S. Almeida
16*04f81fb0SDaniel W. S. Almeida(Warning: older servers will interpret "+4.1" and "-4.1" as "+4" and
17*04f81fb0SDaniel W. S. Almeida"-4", respectively.  Therefore, code meant to work on both new and old
18*04f81fb0SDaniel W. S. Almeidakernels must turn 4.1 on or off *before* turning support for version 4
19*04f81fb0SDaniel W. S. Almeidaon or off; rpc.nfsd does this correctly.)
20*04f81fb0SDaniel W. S. Almeida
21*04f81fb0SDaniel W. S. AlmeidaThe NFSv4 minorversion 1 (NFSv4.1) implementation in nfsd is based
22*04f81fb0SDaniel W. S. Almeidaon RFC 5661.
23*04f81fb0SDaniel W. S. Almeida
24*04f81fb0SDaniel W. S. AlmeidaFrom the many new features in NFSv4.1 the current implementation
25*04f81fb0SDaniel W. S. Almeidafocuses on the mandatory-to-implement NFSv4.1 Sessions, providing
26*04f81fb0SDaniel W. S. Almeida"exactly once" semantics and better control and throttling of the
27*04f81fb0SDaniel W. S. Almeidaresources allocated for each client.
28*04f81fb0SDaniel W. S. Almeida
29*04f81fb0SDaniel W. S. AlmeidaThe table below, taken from the NFSv4.1 document, lists
30*04f81fb0SDaniel W. S. Almeidathe operations that are mandatory to implement (REQ), optional
31*04f81fb0SDaniel W. S. Almeida(OPT), and NFSv4.0 operations that are required not to implement (MNI)
32*04f81fb0SDaniel W. S. Almeidain minor version 1.  The first column indicates the operations that
33*04f81fb0SDaniel W. S. Almeidaare not supported yet by the linux server implementation.
34*04f81fb0SDaniel W. S. Almeida
35*04f81fb0SDaniel W. S. AlmeidaThe OPTIONAL features identified and their abbreviations are as follows:
36*04f81fb0SDaniel W. S. Almeida
37*04f81fb0SDaniel W. S. Almeida- **pNFS**	Parallel NFS
38*04f81fb0SDaniel W. S. Almeida- **FDELG**	File Delegations
39*04f81fb0SDaniel W. S. Almeida- **DDELG**	Directory Delegations
40*04f81fb0SDaniel W. S. Almeida
41*04f81fb0SDaniel W. S. AlmeidaThe following abbreviations indicate the linux server implementation status.
42*04f81fb0SDaniel W. S. Almeida
43*04f81fb0SDaniel W. S. Almeida- **I**	Implemented NFSv4.1 operations.
44*04f81fb0SDaniel W. S. Almeida- **NS**	Not Supported.
45*04f81fb0SDaniel W. S. Almeida- **NS\***	Unimplemented optional feature.
46*04f81fb0SDaniel W. S. Almeida
47*04f81fb0SDaniel W. S. AlmeidaOperations
48*04f81fb0SDaniel W. S. Almeida==========
49*04f81fb0SDaniel W. S. Almeida
50*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
51*04f81fb0SDaniel W. S. Almeida| Implementation status | Operation            | REQ,REC, OPT or NMI | Feature (REQ, REC or OPT) | Definition     |
52*04f81fb0SDaniel W. S. Almeida+=======================+======================+=====================+===========================+================+
53*04f81fb0SDaniel W. S. Almeida|                       | ACCESS               | REQ                 |                           | Section 18.1   |
54*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
55*04f81fb0SDaniel W. S. Almeida| I                     | BACKCHANNEL_CTL      | REQ                 |                           | Section 18.33  |
56*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
57*04f81fb0SDaniel W. S. Almeida| I                     | BIND_CONN_TO_SESSION | REQ                 |                           | Section 18.34  |
58*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
59*04f81fb0SDaniel W. S. Almeida|                       | CLOSE                | REQ                 |                           | Section 18.2   |
60*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
61*04f81fb0SDaniel W. S. Almeida|                       | COMMIT               | REQ                 |                           | Section 18.3   |
62*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
63*04f81fb0SDaniel W. S. Almeida|                       | CREATE               | REQ                 |                           | Section 18.4   |
64*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
65*04f81fb0SDaniel W. S. Almeida| I                     | CREATE_SESSION       | REQ                 |                           | Section 18.36  |
66*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
67*04f81fb0SDaniel W. S. Almeida| NS*                   | DELEGPURGE           | OPT                 | FDELG (REQ)               | Section 18.5   |
68*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
69*04f81fb0SDaniel W. S. Almeida|                       | DELEGRETURN          | OPT                 | FDELG,                    | Section 18.6   |
70*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
71*04f81fb0SDaniel W. S. Almeida|                       |                      |                     | DDELG, pNFS               |                |
72*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
73*04f81fb0SDaniel W. S. Almeida|                       |                      |                     | (REQ)                     |                |
74*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
75*04f81fb0SDaniel W. S. Almeida| I                     | DESTROY_CLIENTID     | REQ                 |                           | Section 18.50  |
76*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
77*04f81fb0SDaniel W. S. Almeida| I                     | DESTROY_SESSION      | REQ                 |                           | Section 18.37  |
78*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
79*04f81fb0SDaniel W. S. Almeida| I                     | EXCHANGE_ID          | REQ                 |                           | Section 18.35  |
80*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
81*04f81fb0SDaniel W. S. Almeida| I                     | FREE_STATEID         | REQ                 |                           | Section 18.38  |
82*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
83*04f81fb0SDaniel W. S. Almeida|                       | GETATTR              | REQ                 |                           | Section 18.7   |
84*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
85*04f81fb0SDaniel W. S. Almeida| I                     | GETDEVICEINFO        | OPT                 | pNFS (REQ)                | Section 18.40  |
86*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
87*04f81fb0SDaniel W. S. Almeida| NS*                   | GETDEVICELIST        | OPT                 | pNFS (OPT)                | Section 18.41  |
88*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
89*04f81fb0SDaniel W. S. Almeida|                       | GETFH                | REQ                 |                           | Section 18.8   |
90*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
91*04f81fb0SDaniel W. S. Almeida| NS*                   | GET_DIR_DELEGATION   | OPT                 | DDELG (REQ)               | Section 18.39  |
92*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
93*04f81fb0SDaniel W. S. Almeida| I                     | LAYOUTCOMMIT         | OPT                 | pNFS (REQ)                | Section 18.42  |
94*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
95*04f81fb0SDaniel W. S. Almeida| I                     | LAYOUTGET            | OPT                 | pNFS (REQ)                | Section 18.43  |
96*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
97*04f81fb0SDaniel W. S. Almeida| I                     | LAYOUTRETURN         | OPT                 | pNFS (REQ)                | Section 18.44  |
98*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
99*04f81fb0SDaniel W. S. Almeida|                       | LINK                 | OPT                 |                           | Section 18.9   |
100*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
101*04f81fb0SDaniel W. S. Almeida|                       | LOCK                 | REQ                 |                           | Section 18.10  |
102*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
103*04f81fb0SDaniel W. S. Almeida|                       | LOCKT                | REQ                 |                           | Section 18.11  |
104*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
105*04f81fb0SDaniel W. S. Almeida|                       | LOCKU                | REQ                 |                           | Section 18.12  |
106*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
107*04f81fb0SDaniel W. S. Almeida|                       | LOOKUP               | REQ                 |                           | Section 18.13  |
108*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
109*04f81fb0SDaniel W. S. Almeida|                       | LOOKUPP              | REQ                 |                           | Section 18.14  |
110*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
111*04f81fb0SDaniel W. S. Almeida|                       | NVERIFY              | REQ                 |                           | Section 18.15  |
112*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
113*04f81fb0SDaniel W. S. Almeida|                       | OPEN                 | REQ                 |                           | Section 18.16  |
114*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
115*04f81fb0SDaniel W. S. Almeida| NS*                   | OPENATTR             | OPT                 |                           | Section 18.17  |
116*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
117*04f81fb0SDaniel W. S. Almeida|                       | OPEN_CONFIRM         | MNI                 |                           | N/A            |
118*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
119*04f81fb0SDaniel W. S. Almeida|                       | OPEN_DOWNGRADE       | REQ                 |                           | Section 18.18  |
120*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
121*04f81fb0SDaniel W. S. Almeida|                       | PUTFH                | REQ                 |                           | Section 18.19  |
122*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
123*04f81fb0SDaniel W. S. Almeida|                       | PUTPUBFH             | REQ                 |                           | Section 18.20  |
124*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
125*04f81fb0SDaniel W. S. Almeida|                       | PUTROOTFH            | REQ                 |                           | Section 18.21  |
126*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
127*04f81fb0SDaniel W. S. Almeida|                       | READ                 | REQ                 |                           | Section 18.22  |
128*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
129*04f81fb0SDaniel W. S. Almeida|                       | READDIR              | REQ                 |                           | Section 18.23  |
130*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
131*04f81fb0SDaniel W. S. Almeida|                       | READLINK             | OPT                 |                           | Section 18.24  |
132*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
133*04f81fb0SDaniel W. S. Almeida|                       | RECLAIM_COMPLETE     | REQ                 |                           | Section 18.51  |
134*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
135*04f81fb0SDaniel W. S. Almeida|                       | RELEASE_LOCKOWNER    | MNI                 |                           | N/A            |
136*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
137*04f81fb0SDaniel W. S. Almeida|                       | REMOVE               | REQ                 |                           | Section 18.25  |
138*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
139*04f81fb0SDaniel W. S. Almeida|                       | RENAME               | REQ                 |                           | Section 18.26  |
140*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
141*04f81fb0SDaniel W. S. Almeida|                       | RENEW                | MNI                 |                           | N/A            |
142*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
143*04f81fb0SDaniel W. S. Almeida|                       | RESTOREFH            | REQ                 |                           | Section 18.27  |
144*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
145*04f81fb0SDaniel W. S. Almeida|                       | SAVEFH               | REQ                 |                           | Section 18.28  |
146*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
147*04f81fb0SDaniel W. S. Almeida|                       | SECINFO              | REQ                 |                           | Section 18.29  |
148*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
149*04f81fb0SDaniel W. S. Almeida| I                     | SECINFO_NO_NAME      | REC                 | pNFS files                | Section 18.45, |
150*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
151*04f81fb0SDaniel W. S. Almeida|                       |                      |                     | layout (REQ)              | Section 13.12  |
152*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
153*04f81fb0SDaniel W. S. Almeida| I                     | SEQUENCE             | REQ                 |                           | Section 18.46  |
154*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
155*04f81fb0SDaniel W. S. Almeida|                       | SETATTR              | REQ                 |                           | Section 18.30  |
156*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
157*04f81fb0SDaniel W. S. Almeida|                       | SETCLIENTID          | MNI                 |                           | N/A            |
158*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
159*04f81fb0SDaniel W. S. Almeida|                       | SETCLIENTID_CONFIRM  | MNI                 |                           | N/A            |
160*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
161*04f81fb0SDaniel W. S. Almeida| NS                    | SET_SSV              | REQ                 |                           | Section 18.47  |
162*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
163*04f81fb0SDaniel W. S. Almeida| I                     | TEST_STATEID         | REQ                 |                           | Section 18.48  |
164*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
165*04f81fb0SDaniel W. S. Almeida|                       | VERIFY               | REQ                 |                           | Section 18.31  |
166*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
167*04f81fb0SDaniel W. S. Almeida| NS*                   | WANT_DELEGATION      | OPT                 | FDELG (OPT)               | Section 18.49  |
168*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
169*04f81fb0SDaniel W. S. Almeida|                       | WRITE                | REQ                 |                           | Section 18.32  |
170*04f81fb0SDaniel W. S. Almeida+-----------------------+----------------------+---------------------+---------------------------+----------------+
171*04f81fb0SDaniel W. S. Almeida
172*04f81fb0SDaniel W. S. Almeida
173*04f81fb0SDaniel W. S. AlmeidaCallback Operations
174*04f81fb0SDaniel W. S. Almeida===================
175*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
176*04f81fb0SDaniel W. S. Almeida| Implementation status | Operation               | REQ,REC, OPT or NMI | Feature (REQ, REC or OPT) | Definition    |
177*04f81fb0SDaniel W. S. Almeida+=======================+=========================+=====================+===========================+===============+
178*04f81fb0SDaniel W. S. Almeida|                       | CB_GETATTR              | OPT                 | FDELG (REQ)               | Section 20.1  |
179*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
180*04f81fb0SDaniel W. S. Almeida| I                     | CB_LAYOUTRECALL         | OPT                 | pNFS (REQ)                | Section 20.3  |
181*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
182*04f81fb0SDaniel W. S. Almeida| NS*                   | CB_NOTIFY               | OPT                 | DDELG (REQ)               | Section 20.4  |
183*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
184*04f81fb0SDaniel W. S. Almeida| NS*                   | CB_NOTIFY_DEVICEID      | OPT                 | pNFS (OPT)                | Section 20.12 |
185*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
186*04f81fb0SDaniel W. S. Almeida| NS*                   | CB_NOTIFY_LOCK          | OPT                 |                           | Section 20.11 |
187*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
188*04f81fb0SDaniel W. S. Almeida| NS*                   | CB_PUSH_DELEG           | OPT                 | FDELG (OPT)               | Section 20.5  |
189*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
190*04f81fb0SDaniel W. S. Almeida|                       | CB_RECALL               | OPT                 | FDELG,                    | Section 20.2  |
191*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
192*04f81fb0SDaniel W. S. Almeida|                       |                         |                     | DDELG, pNFS               |               |
193*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
194*04f81fb0SDaniel W. S. Almeida|                       |                         |                     | (REQ)                     |               |
195*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
196*04f81fb0SDaniel W. S. Almeida| NS*                   | CB_RECALL_ANY           | OPT                 | FDELG,                    | Section 20.6  |
197*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
198*04f81fb0SDaniel W. S. Almeida|                       |                         |                     | DDELG, pNFS               |               |
199*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
200*04f81fb0SDaniel W. S. Almeida|                       |                         |                     | (REQ)                     |               |
201*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
202*04f81fb0SDaniel W. S. Almeida| NS                    | CB_RECALL_SLOT          | REQ                 |                           | Section 20.8  |
203*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
204*04f81fb0SDaniel W. S. Almeida| NS*                   | CB_RECALLABLE_OBJ_AVAIL | OPT                 | DDELG, pNFS               | Section 20.7  |
205*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
206*04f81fb0SDaniel W. S. Almeida|                       |                         |                     | (REQ)                     |               |
207*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
208*04f81fb0SDaniel W. S. Almeida| I                     | CB_SEQUENCE             | OPT                 | FDELG,                    | Section 20.9  |
209*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
210*04f81fb0SDaniel W. S. Almeida|                       |                         |                     | DDELG, pNFS               |               |
211*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
212*04f81fb0SDaniel W. S. Almeida|                       |                         |                     | (REQ)                     |               |
213*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
214*04f81fb0SDaniel W. S. Almeida| NS*                   | CB_WANTS_CANCELLED      | OPT                 | FDELG,                    | Section 20.10 |
215*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
216*04f81fb0SDaniel W. S. Almeida|                       |                         |                     | DDELG, pNFS               |               |
217*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
218*04f81fb0SDaniel W. S. Almeida|                       |                         |                     | (REQ)                     |               |
219*04f81fb0SDaniel W. S. Almeida+-----------------------+-------------------------+---------------------+---------------------------+---------------+
220*04f81fb0SDaniel W. S. Almeida
221*04f81fb0SDaniel W. S. Almeida
222*04f81fb0SDaniel W. S. AlmeidaImplementation notes:
223*04f81fb0SDaniel W. S. Almeida=====================
224*04f81fb0SDaniel W. S. Almeida
225*04f81fb0SDaniel W. S. AlmeidaSSV:
226*04f81fb0SDaniel W. S. Almeida  The spec claims this is mandatory, but we don't actually know of any
227*04f81fb0SDaniel W. S. Almeida  implementations, so we're ignoring it for now.  The server returns
228*04f81fb0SDaniel W. S. Almeida  NFS4ERR_ENCR_ALG_UNSUPP on EXCHANGE_ID, which should be future-proof.
229*04f81fb0SDaniel W. S. Almeida
230*04f81fb0SDaniel W. S. AlmeidaGSS on the backchannel:
231*04f81fb0SDaniel W. S. Almeida  Again, theoretically required but not widely implemented (in
232*04f81fb0SDaniel W. S. Almeida  particular, the current Linux client doesn't request it).  We return
233*04f81fb0SDaniel W. S. Almeida  NFS4ERR_ENCR_ALG_UNSUPP on CREATE_SESSION.
234*04f81fb0SDaniel W. S. Almeida
235*04f81fb0SDaniel W. S. AlmeidaDELEGPURGE:
236*04f81fb0SDaniel W. S. Almeida  mandatory only for servers that support CLAIM_DELEGATE_PREV and/or
237*04f81fb0SDaniel W. S. Almeida  CLAIM_DELEG_PREV_FH (which allows clients to keep delegations that
238*04f81fb0SDaniel W. S. Almeida  persist across client reboots).  Thus we need not implement this for
239*04f81fb0SDaniel W. S. Almeida  now.
240*04f81fb0SDaniel W. S. Almeida
241*04f81fb0SDaniel W. S. AlmeidaEXCHANGE_ID:
242*04f81fb0SDaniel W. S. Almeida  implementation ids are ignored
243*04f81fb0SDaniel W. S. Almeida
244*04f81fb0SDaniel W. S. AlmeidaCREATE_SESSION:
245*04f81fb0SDaniel W. S. Almeida  backchannel attributes are ignored
246*04f81fb0SDaniel W. S. Almeida
247*04f81fb0SDaniel W. S. AlmeidaSEQUENCE:
248*04f81fb0SDaniel W. S. Almeida  no support for dynamic slot table renegotiation (optional)
249*04f81fb0SDaniel W. S. Almeida
250*04f81fb0SDaniel W. S. AlmeidaNonstandard compound limitations:
251*04f81fb0SDaniel W. S. Almeida  No support for a sessions fore channel RPC compound that requires both a
252*04f81fb0SDaniel W. S. Almeida  ca_maxrequestsize request and a ca_maxresponsesize reply, so we may
253*04f81fb0SDaniel W. S. Almeida  fail to live up to the promise we made in CREATE_SESSION fore channel
254*04f81fb0SDaniel W. S. Almeida  negotiation.
255*04f81fb0SDaniel W. S. Almeida
256*04f81fb0SDaniel W. S. AlmeidaSee also http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues.
257