`
`Protocols for Interworking: XNFS, Version 3W
`
`The Open Group
`
`1 of 352
`
`CROSSROADS EXHIBIT 2059
`Oracle Corp., et al v. Crossroads Systems, Inc.
`IPR2014-01207 and IPR2014-1209
`
`
`
`(cid:211) February 1998, The Open Group
`All rights reserved.
`No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in
`any form or by any means, electronic, mechanical, photocopying, recording or otherwise,
`without the prior permission of the copyright owners.
`
`Open Group Technical Standard
`Protocols for Interworking: XNFS, Version 3W
`ISBN: 1-85912-184-5
`Document Number: C702
`
`Published in the U.K. by The Open Group, February 1998.
`
`Any comments relating to the material contained in this document may be submitted to:
`The Open Group
`Apex Plaza
`Forbury Road
`Reading
`Berkshire, RG1 1AX
`United Kingdom
`or by Electronic Mail to:
`OGSpecs@opengroup.org
`
`ii
`
`Open Group Technical Standard
`
`2 of 352
`
`
`
`Contents
`
`Chapter
`
`
`
`
`
`
`
`
`Chapter
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Chapter
`
`
`
`
`
`
`
`
`
`
`1
`1.1
`1.2
`1.3
`1.4
`1.5
`1.6
`1.7
`
`2
`2.1
`2.2
`2.3
`2.4
`2.4.1
`2.4.2
`2.5
`2.5.1
`2.5.2
`2.5.3
`2.5.4
`2.6
`2.6.1
`2.6.2
`2.6.3
`2.6.4
`2.6.5
`2.7
`2.8
`2.8.1
`2.8.2
`
`3
`3.1
`3.1.1
`3.1.2
`3.1.3
`3.2
`3.2.1
`3.2.2
`3.2.3
`3.2.4
`
`Introduction...............................................................................................
` Overview ......................................................................................................
` Scope..............................................................................................................
` Audience.......................................................................................................
` Terminology.................................................................................................
` Protocol Stacks and Conformance ..........................................................
` Relationship to other Open Group Specifications ...............................
` References to RFCs .....................................................................................
`
`XNFS Service Model ............................................................................
` Introduction .................................................................................................
` Informal Overview of XNFS.....................................................................
` Elements of the XNFS Service Model.....................................................
` XNFS Objects ...............................................................................................
` ExportedFileSystem ................................................................................
` MountedFileSystem ................................................................................
` XNFS Server Operations ...........................................................................
` The ExpFileSysOp Operation .................................................................
` The UnExpFileSysOp Operation............................................................
` The ExpStdFileSysOp Operation............................................................
` The UnExpStdFileSysOp Operation ......................................................
` XNFS Client Operations............................................................................
` The ShowExpFileSysOp Operation ........................................................
` The MntFileSysOp Operation.................................................................
` The UnMntFileSysOp Operation ...........................................................
` The MntStdFileSysOp Operation...........................................................
` The UnMntAllFileSys Operation...........................................................
` File and Directory Operations..................................................................
` Operation in an International Environment .........................................
` Internationalized XNFS Operations ....................................................
` Remote File Systems Created in Different Locales ...........................
`
`XDR Protocol Specification..............................................................
` Introduction .................................................................................................
` A Canonical Standard.............................................................................
` Byte Encoding...........................................................................................
` Basic Block Size ........................................................................................
` XDR Data Types ..........................................................................................
` Integer ........................................................................................................
` Unsigned Integer......................................................................................
` Hyper Integer and Unsigned Hyper Integer......................................
` Enumeration .............................................................................................
`
`Protocols for Interworking: XNFS, Version 3W
`
`1
`1
`2
`3
`4
`5
`6
`7
`
`9
`9
`10
`13
`14
`14
`15
`19
`19
`19
`20
`20
`21
`21
`21
`22
`23
`23
`24
`25
`25
`25
`
`27
`27
`27
`28
`28
`29
`29
`29
`30
`30
`
`iii
`
`3 of 352
`
`
`
`Contents
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Chapter
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Chapter
`
`
`
`
`
`
`
`
`
`3.2.5
`3.2.6
`3.2.7
`3.2.8
`3.2.9
`3.2.10
`3.2.11
`3.2.12
`3.2.13
`3.2.14
`3.2.15
`3.2.16
`3.3
`3.3.1
`3.3.2
`3.3.3
`3.3.4
`3.3.5
`3.4
`
`4
`4.1
`4.1.1
`4.1.2
`4.1.3
`4.1.4
`4.2
`4.2.1
`4.2.2
`4.3
`4.4
`4.4.1
`4.4.2
`4.4.3
`4.5
`4.5.1
`4.5.2
`4.5.3
`
`5
`5.1
`5.2
`5.3
`5.4
`5.4.1
`5.4.2
`5.4.3
`5.4.4
`
` Boolean.......................................................................................................
` Fixed-Length Opaque Data ...................................................................
` Variable-Length Opaque Data ..............................................................
` String ..........................................................................................................
` Fixed-Length Array.................................................................................
` Variable-Length Array............................................................................
` Structure ....................................................................................................
` Discriminated Union...............................................................................
` Void.............................................................................................................
` Constant.....................................................................................................
` Typedef.......................................................................................................
` Optional-data............................................................................................
` The XDR Language Specification............................................................
` Notational Conventions .........................................................................
` Lexical Notes ............................................................................................
` Syntax Information..................................................................................
` Syntax Notes .............................................................................................
` Use of XDR ................................................................................................
` Example of an XDR Data Description ....................................................
`
`Remote Procedure Calls : Protocol Specification ................
` Introduction .................................................................................................
` Terminology..............................................................................................
` The RPC Model ........................................................................................
` Transports and Semantics ......................................................................
` Binding and Rendezvous Independence ............................................
` RPC Protocol Requirements .....................................................................
` Programs and Procedures ......................................................................
` Authentication..........................................................................................
` The RPC Message Protocol .......................................................................
` Authentication Protocols...........................................................................
` Null Authentication ................................................................................
` UNIX Authentication..............................................................................
` DES and Kerberos Authentication .......................................................
` The RPC Language.....................................................................................
` The RPC Language Specification .........................................................
` An Example Service Described in the RPC Language.....................
` Syntax Notes .............................................................................................
`
`RPC Interface to UDP Transport Services...............................
` Introduction .................................................................................................
` RPC and Transport Requirements...........................................................
` UDP as a Transport Protocol ....................................................................
` RPC Interface ...............................................................................................
` The RPC Request .....................................................................................
` The RPC Reply .........................................................................................
` Receiving a UDP Reply Packet .............................................................
` Closing .......................................................................................................
`
`30
`30
`31
`31
`32
`32
`33
`33
`34
`34
`34
`35
`37
`37
`37
`38
`39
`39
`40
`
`43
`43
`43
`43
`44
`45
`46
`46
`47
`48
`52
`52
`52
`53
`54
`54
`54
`55
`
`57
`57
`57
`58
`59
`59
`59
`60
`60
`
`iv
`
`Open Group Technical Standard
`
`4 of 352
`
`
`
`Contents
`
`Chapter
`
`
`
`
`
`
`
`
`
`
`Chapter
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Chapter
`
`
`
`
`
`
`6
`6.1
`6.2
`6.3
`6.4
`
`
`
`
`
`
`7
`7.1
`7.1.1
`7.1.2
`7.1.3
`7.2
`7.2.1
`7.3
`7.3.1
`7.3.2
`7.4
`7.5
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`8
`8.1
`8.2
`8.2.1
`8.2.2
`8.3
`
`Port Mapper Protocol ...........................................................................
` Introduction .................................................................................................
` Introduction to Port Mapper Program Protocol...................................
` Port Mapper Protocol Specification (in RPC Language) ....................
` Port Mapper Procedures............................................................................
` PMAPPROC_NULL.................................................................................
` PMAPPROC_SET.....................................................................................
` PMAPPROC_UNSET..............................................................................
` PMAPPROC_GETPORT.........................................................................
` PMAPPROC_DUMP...............................................................................
`
`61
`61
`61
`62
`63
`64
`65
`66
`67
`68
`
`XNFS : Protocol Specification, Version 2 ................................
`69
`69
` Introduction .................................................................................................
`69
` Remote Procedure Call ...........................................................................
`69
` External Data Representation ...............................................................
`70
` Stateless Servers and Idempotency......................................................
`71
` XNFS Protocol Definition..........................................................................
`71
` File System Model....................................................................................
`72
` RPC Information .........................................................................................
`72
` Sizes of XDR Structures..........................................................................
`73
` Basic Data Types ......................................................................................
`78
` XNFS Implementation Issues...................................................................
`79
` Server Procedures .......................................................................................
`80
` NFSPROC_NULL.....................................................................................
`81
` NFSPROC_GETATTR ..............................................................................
`82
` NFSPROC_SETATTR...............................................................................
`84
` NFSPROC_ROOT ....................................................................................
`85
` NFSPROC_LOOKUP...............................................................................
`86
` NFSPROC_READLINK...........................................................................
`87
` NFSPROC_READ.....................................................................................
`88
` NFSPROC_WRITECACHE.....................................................................
`89
` NFSPROC_WRITE...................................................................................
`91
` NFSPROC_CREATE ................................................................................
`93
` NFSPROC_REMOVE..............................................................................
`94
` NFSPROC_RENAME..............................................................................
`96
` NFSPROC_LINK ......................................................................................
`97
` NFSPROC_SYMLINK .............................................................................
`99
` NFSPROC_MKDIR..................................................................................
` NFSPROC_RMDIR.................................................................................. 101
` NFSPROC_READDIR............................................................................. 102
` NFSPROC_STATFS.................................................................................. 104
`
`Mount Protocol ........................................................................................ 107
` Introduction ................................................................................................. 107
` RPC Information ......................................................................................... 107
` Sizes of XDR Structures.......................................................................... 107
` Basic Data Types ...................................................................................... 108
` Server Procedures ....................................................................................... 109
`
`Protocols for Interworking: XNFS, Version 3W
`
`v
`
`5 of 352
`
`
`
`Contents
`
`
`
`
`
`
`
`
`Chapter
`
`
`
`
`
`
`
`
`
`
`
`Chapter
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`9
`9.1
`9.1.1
`9.1.2
`9.2
`9.2.1
`9.2.2
`9.3
`9.4
`9.4.1
`9.4.2
`
`10
`10.1
`10.1.1
`10.1.2
`10.1.3
`10.2
`10.2.1
`10.2.2
`10.2.3
`10.3
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
` MNTPROC_NULL................................................................................... 110
` MNTPROC_MNT..................................................................................... 111
` MNTPROC_DUMP ................................................................................. 112
` MNTPROC_UMNT ................................................................................. 113
` MNTPROC_UMNTALL .......................................................................... 114
` MNTPROC_EXPORT.............................................................................. 115
`
`File Locking over XNFS ..................................................................... 117
` Introduction ................................................................................................. 117
` NLM Protocol ........................................................................................... 117
` NSM Protocol............................................................................................ 118
` Interaction .................................................................................................... 119
` Monitored Locks ...................................................................................... 119
` Non-Monitored Locks............................................................................. 120
` Transport Issues .......................................................................................... 121
` Examples of Locking.................................................................................. 122
` Server Crash Example............................................................................. 122
` Client Crash Example ............................................................................. 124
`
`Network Lock Manager Protocol ................................................. 127
` Introduction ................................................................................................. 127
` Versions...................................................................................................... 127
` Synchronization of NLMs...................................................................... 127
` DOS-Compatible File-Sharing Support .............................................. 127
` RPC Information ......................................................................................... 128
` Sizes of XDR Structures.......................................................................... 128
` Basic Data Types for Locking ................................................................ 128
` DOS File-Sharing Data Types................................................................ 131
` NLM Procedures......................................................................................... 134
` NLM_NULL............................................................................................... 136
` NLM_TEST................................................................................................ 137
` NLM_LOCK............................................................................................... 138
` NLM_CANCEL......................................................................................... 140
` NLM_UNLOCK ........................................................................................ 141
` NLM_GRANTED...................................................................................... 142
` NLM_TEST_MSG..................................................................................... 143
` NLM_LOCK_MSG ................................................................................... 144
` NLM_CANCEL_MSG.............................................................................. 146
` NLM_UNLOCK_MSG............................................................................. 147
` NLM_GRANTED_MSG.......................................................................... 148
` NLM_TEST_RES...................................................................................... 149
` NLM_LOCK_RES..................................................................................... 150
` NLM_CANCEL_RES ............................................................................... 151
` NLM_UNLOCK_RES............................................................................... 152
` NLM_GRANTED_RES............................................................................ 153
` NLM_SHARE............................................................................................ 154
` NLM_UNSHARE...................................................................................... 156
` NLM_NM_LOCK ..................................................................................... 157
`
`vi
`
`Open Group Technical Standard
`
`6 of 352
`
`
`
`Contents
`
`
`
`Chapter
`
`
`
`
`
`
`
`
`
`
`
`
`
`Chapter
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`11
`11.1
`11.2
`11.2.1
`11.2.2
`11.3
`
`
`
`
`
`
`
`
`12
`12.1
`12.2
`12.2.1
`12.2.2
`12.2.3
`12.2.4
`12.3
`12.3.1
`12.3.2
`12.3.3
`12.3.4
`12.3.5
`12.3.6
`12.3.7
`12.3.8
`12.3.9
`12.3.10
`12.3.11
`12.3.12
`12.4
`
`
`
`
`
`
`
`
`
`
`
`
` NLM_FREE_ALL...................................................................................... 159
`
`Network Status Monitor Protocol................................................ 161
` Introduction ................................................................................................. 161
` RPC Information ......................................................................................... 162
` Sizes of XDR Structures.......................................................................... 162
` Basic Data Types ...................................................................................... 162
` NSM Procedures ......................................................................................... 165
` SM_NULL.................................................................................................. 166
` SM_STAT ................................................................................................... 167
` SM_MON................................................................................................... 168
` SM_UNMON ............................................................................................ 170
` SM_UNMON_ALL................................................................................... 171
` SM_SIMU_CRASH.................................................................................. 172
` SM_NOTIFY.............................................................................................. 173
`
`XNFS : Protocol Specification, Version 3.................................. 175
` Summary of Version 3 Protocol Changes .............................................. 175
` RPC Information ......................................................................................... 177
` Sizes of XDR Structures.......................................................................... 177
` Basic Data Types ...................................................................................... 178
` Attributes and Consistency Data on Failure...................................... 188
` General File Name Requirements ........................................................ 188
` XNFS Implementation Issues................................................................... 189
` Server/Client Relationship.................................................................... 189
` Pathname Interpretation ........................................................................ 190
` Permission Issues..................................................................................... 190
` Duplicate Request Cache ....................................................................... 191
` Filename Component Handling........................................................... 192
` Synchronous Modifying Operations ................................................... 192
` Stable Storage ........................................................................................... 192
` Lookups and Name Resolution ............................................................ 193
` Adaptive Retransmission....................................................................... 193
` Caching Policies ....................................................................................... 193
` Stable Versus Unstable Writes............................................................... 193
` 32-bit Clients/Servers and 64-bit Clients/Servers ........................... 194
` Server Procedures ....................................................................................... 195
` NFSPROC3_NULL................................................................................... 196
` NFSPROC3_GETATTR............................................................................ 197
` NFSPROC3_SETATTR ............................................................................ 199
` NFSPROC3_LOOKUP............................................................................. 202
` NFSPROC3_ACCESS .............................................................................. 204
` NFSPROC3_READLINK......................................................................... 207
` NFSPROC3_READ .................................................................................. 209
` NFSPROC3_WRITE................................................................................. 212
` NFSPROC3_CREATE .............................................................................. 216
` NFSPROC3_MKDIR................................................................................ 220
` NFSPROC3_SYMLINK ........................................................................... 222
`
`Protocols for Interworking: XNFS, Version 3W
`
`vii
`
`7 of 352
`
`
`
`Contents
`
`
`
`
`
`
`
`
`
`
`
`
`
`Chapter
`
`
`
`
`
`
`
`
`
`
`
`Chapter
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`13
`13.1
`13.1.1
`13.1.2
`13.2
`
`
`
`
`
`
`
`14
`14.1
`14.2
`14.2.1
`14.3
`
`14.4
`
`Appendix A
`
`A.1
`
`A.2
`
`A.3
`
`A.4
`
`A.5
`
`A.5.1
`
`A.5.2
`
`A.5.3
`
`A.6
`
`A.6.1
`
`A.6.2
`
`A.7
`
`A.8
`
`A.9
`
`A.9.1
`
` NFSPROC3_MKNOD.............................................................................. 225
` NFSPROC3_REMOVE............................................................................ 228
` NFSPROC3_RMDIR................................................................................ 230
` NFSPROC3_RENAME............................................................................ 232
` NFSPROC3_LINK .................................................................................... 235
` NFSPROC3_READDIR........................................................................... 238
` NFSPROC3_READDIRPLUS................................................................. 241
` NFSPROC3_FSSTAT................................................................................ 244
` NFSPROC3_FSINFO ............................................................................... 246
` NFSPROC3_PATHCONF........................................................................ 249
` NFSPROC3_COMMIT ............................................................................ 251
`
`Mount Protocol, Version 3 ................................................................ 255
` RPC Information ......................................................................................... 255
` Sizes of XDR Structures.......................................................................... 255
` Basic Data Types ...................................................................................... 255
` Server Procedures ....................................................................................... 256
` MOUNTPROC3_NULL........................................................................... 257
` MOUNTPROC3_MNT............................................................................ 258
` MOUNTPROC3_DUMP......................................................................... 259
` MOUNTPROC3_UMNT......................................................................... 260
` MOUNTPROC3_UMNTALL.................................................................. 261
` MOUNTPROC3_EXPORT..................................................................... 262
`
`Network Lock Manager Protocol, Version 4.......................... 263
` Introduction ................................................................................................. 263
` RPC Information ......................................................................................... 264
` Basic Data Types ...................................................................................... 264
` NLM Procedures......................................................................................... 267
` NLMPROC3_NULL ................................................................................. 268
` Implementation Guidance........................................................................ 269
`
`Semantic Difference Summary for File Access ................... 271
` Introduction ................................................................................................. 271
` Special File Access ...................................................................................... 272
` UID Mapping by Server ............................................................................ 272
` Execution of Set-user-ID Programs......................................................... 273
` Attribute and Access Caching.................................................................. 273
` Denial of Access ....................................................................................... 274
` Operations Using File’s Byte Count..................................................... 274
` File Times................................................................................................... 274
` File Accessibility Changed after Open................................................... 274
` File Attributes Changed after Open..................................................... 274
` File Deleted after Open........................................................................... 275
` No Protection for In-Use Executables .................................................... 275
` Transparent Rename or Unlink While Open......................................... 275
` Data Caching ............................................................................................... 276
` Delayed Write Errors............................................................................... 276
`
`viii
`
`Open Group Technical Standard
`
`8 of 352
`
`
`
`Contents
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`A.9.2
`A.9.3
`A.9.4
`A.10
`A.11
`A.12
`A.13
`A.14
`A.14.1
`A.14.2
`A.14.3
`A.14.4
`A.14.5
`A.15
`A.15.1
`A.15.2
`A.15.3
`A.15.4
`A.15.5
`A.15.6
`A.15.7
`A.15.8
`A.15.9
`A.16
`A.17
`A.18
`A.19
`A.20
`A.21
`A.22
`A.23
`A.23.1
`A.23.2
`
`Appendix B
`
`B.1
`
`B.2
`
`B.3
`
`Appendix C
`
`C.1
`
`C.2
`
`C.2.1
`
`C.2.2
`
`C.2.3
`
`C.3
`
` Read of Old Data...................................................................................... 276
` Atomicity of Transfer.............................................................................. 276
` File Time Updates.................................................................................... 276
` Directory Caching....................................................................................... 277
` Time Skew .......