largest smb2.1 create
[metze/samba/wip.git] / smbd-adm.txt
1
2 MS-FSA:
3
4         Per Open (Volatile):
5
6                 RootOpen - Share
7                 FileName - absolute/relative to root?
8                 File
9                 Link
10                 Stream
11                 Privileges - (backup/restore/symlink/manage volume/is_admin)
12                 GrantedAccess
13                 RemainingDesiredAccess
14                 SharingAccess
15                 Per Directory:
16                         search mask, search index...
17                         some more stuff...
18                 UserSetModTime
19                 UserSetWriteTime
20                 NextEAEntry
21                 OplockKey (guid)
22
23         Per Brlock (Volatile):
24                 LockOffset
25                 LockLength
26                 IsExclusive
27                 OwnerOpen
28
29         Per NotifyEntryWatch (Volatile):
30                 ...
31
32         Per RHOpcontext (Volatile):
33                 Open
34                 BreakingToRead
35
36         Per Oplock (Volatile per Stream):
37                 ExclusiveOpen: 1 Open
38                 Level2Opens: 0..x Opens
39                 ReadOpens: 0..x Opens
40                 ReadHandleOpens: 0..x Opens
41                 ReadHandleBreakQueue: 0..x RHOpContexts
42                 WaitList: 0..x Opens waiting for Breaks
43                 State: all kind of flags
44                         NO_OPLOCK
45                         LEVEL_ONE_OPLOCK
46                         BATCH_OPLOCK
47                         LEVEL_TWO_OPLOCK
48                         EXCLUSIVE
49                         BREAK_TO_TWO
50                         BREAK_TO_NONE
51                         BREAK_TO_TWO_TO_NONE
52                         READ_CACHING
53                         HANDLE_CACHING
54                         WRITE_CACHING ???
55
56         Per File (Persistent):
57                 FileType: file or directory
58                 FileID: uint64_t unique (inode?)
59                 FileNumber: uint64_t unique (seqnum?)
60                 LinkList: 1..x links (dir => x == 1)
61                 SecurityDescriptor:
62                 FileAttributes:
63                 CreationTime:
64                 LastModificationTime:
65                 LastChangeTime:
66                 LastAccessTime:
67                 ExtendedAttributes:
68                 ExtendedAttributesLength:
69                 ObjectId: guid maybe NULL
70                 BirthVolumeId: guid
71                 BirthObjectId: guid maybe NULL
72                 StreamList:
73                 ReparseTag: uint32_t
74                 ReparseGUID: guid
75                 ReparseData:
76                 DirectoryList: for directories only
77                 Volume:
78                 Usn: uint64_t
79                 IsSymbolicLink:
80                 UserCertificateList:
81                 Volatile Fields:
82                         OpenList:
83                         PendingNotifications: uint32_t ??? for directories only
84
85         Per Link (Persistent):
86                 Name: 1..256 chars (UTF16 or UCS2?)
87                 ShortName: maybe NULL
88                 File:
89                 ParentFile:
90                 IsDeleted:
91                 Volatile Fields:
92                         PendingNotifications: uint32_t ??? for directories only
93
94         Per Stream (Persistent):
95                 StreamType: data or directory stream
96                 Name: 256 chars (UTF16 or UCS2)
97                 Size: uint64_t
98                 AllocationSize: uint64_t multiple of File.Volume.ClusterSize.
99                 ValidDataLength: uint64_t (optional)
100                 File:
101                 IsCompressed:
102                 IsSparse:
103                 IsTemporary:
104                 IsEncrypted:
105                 ExtentList:
106                 Volatile Fields:
107                         Oplock: maybe NULL
108                         ByteRangeLockList:
109                         IsDeleted:
110                         IsDefectManagementDisabled:
111                         PendingNotifications: uint32_t ??? for directories only
112                         ZeroOnDeallocate:
113
114
115
116 SMB 2.10:
117 - session reauth
118 - branch cache hash
119 - multi-credit on port 445
120 - lease and resilience
121 - lock replay!!!
122
123 The SMB 2.1 dialect introduces the following enhancements:
124 - Allowing a client to indicate support for multiple SMB 2 dialects in a multi-protocol negotiate
125 request.
126 - Allowing a client to obtain and preserve client caching state across multiple opens from the same
127 client.
128 - Allowing a client to mark individual write operations on unbuffered handles to be treated as
129 write-through.
130 - Allowing a client to retrieve hashes of a file for use in branch cache retrieval, as specified in [MS-
131 PCCRC].
132
133 SMB 2.22:
134
135 channel epoch number...
136
137
138 channel bind should distribute the fd's related to the session
139 via fd passing.
140
141 cluster:
142 witness discovery
143
144 witness monitoring. register/unregister.
145
146 async rpc.
147
148
149 net name offline
150 ip offline
151
152 net name online
153 ip online
154
155 loadbalancing
156
157 client side failover client cluster:
158 application move