Document Negotiate Request SMB3_POSIX_EXTENSIONS_AVAILABLE
authorDavid Mulder <dmulder@samba.org>
Wed, 21 Sep 2022 17:18:51 +0000 (11:18 -0600)
committerDavid Mulder <dmulder@samba.org>
Wed, 21 Sep 2022 17:18:51 +0000 (11:18 -0600)
Signed-off-by: David Mulder <dmulder@samba.org>
smb3_posix_extensions.md [new file with mode: 0644]

diff --git a/smb3_posix_extensions.md b/smb3_posix_extensions.md
new file mode 100644 (file)
index 0000000..3fb699e
--- /dev/null
@@ -0,0 +1,207 @@
+<style>
+th, td {
+  font-size: .875rem;
+  padding-top: 0px;
+  padding-bottom: 0px;
+}
+th {
+  border: 1px solid #bbb;
+  color: #2a2a2a;
+  background-color: #ededed;
+  font-weight: 600;
+}
+td {
+  border: 1px solid #bbb;
+  color: #2a2a2a;
+  background-color: #fff;
+}
+</style>
+
+# 1 Introduction
+
+# 2 Messages
+
+## 2.2 Message Syntax
+
+### 2.2.3 SMB2 NEGOTIATE REQUEST
+
+#### 2.2.3.1 SMB2 NEGOTIATE_CONTEXT Request Values
+
+<table>
+ <tr>
+  <th><p><br>0</p></th>
+  <th><p><br>1</p></th>
+  <th><p><br>2</p></th>
+  <th><p><br>3</p></th>
+  <th><p><br>4</p></th>
+  <th><p><br>5</p></th>
+  <th><p><br>6</p></th>
+  <th><p><br>7</p></th>
+  <th><p><br>8</p></th>
+  <th><p><br>9</p></th>
+  <th><p>1<br>0</p></th>
+  <th><p><br>1</p></th>
+  <th><p><br>2</p></th>
+  <th><p><br>3</p></th>
+  <th><p><br>4</p></th>
+  <th><p><br>5</p></th>
+  <th><p><br>6</p></th>
+  <th><p><br>7</p></th>
+  <th><p><br>8</p></th>
+  <th><p><br>9</p></th>
+  <th><p>2<br>0</p></th>
+  <th><p><br>1</p></th>
+  <th><p><br>2</p></th>
+  <th><p><br>3</p></th>
+  <th><p><br>4</p></th>
+  <th><p><br>5</p></th>
+  <th><p><br>6</p></th>
+  <th><p><br>7</p></th>
+  <th><p><br>8</p></th>
+  <th><p><br>9</p></th>
+  <th><p>3<br>0</p></th>
+  <th><p><br>1</p></th>
+ </tr>
+ <tr>
+  <td colspan="16">
+  <p>ContextType</p>
+  </td>
+  <td colspan="16">
+  <p>DataLength</p>
+  </td>
+ </tr>
+ <tr>
+  <td colspan="32">
+  <p>Reserved</p>
+  </td>
+ </tr>
+ <tr>
+  <td colspan="32">
+  <p>Data
+  (variable)</p>
+  </td>
+ </tr>
+ <tr>
+  <td colspan="32">
+  <p>...</p>
+  </td>
+ </tr>
+</table>
+
+**ContextType (2 bytes):** Specifies the type of context in the Data field. This
+field MUST be one of the following values:
+
+<table><thead>
+  <tr>
+   <th>
+   <p>Value</p>
+   </th>
+   <th>
+   <p>Meaning</p>
+   </th>
+  </tr>
+ </thead><tbody><tr>
+  <td>
+  <p>SMB3_POSIX_EXTENSIONS_AVAILABLE</p>
+  <p>0x0100</p>
+  </td>
+  <td>
+  <p>The <b>Data</b> field contains a blob which uniquely identifies the SMB3
+  POSIX version.</p>
+  </td>
+</tr></tbody></table>
+
+**DataLength (2 bytes):** The length, in bytes, of the **Data** field.
+
+**Reserved (4 bytes):** This field MUST NOT be used and MUST be reserved. This
+value MUST be set to 0 by the client, and MUST be ignored by the server.
+
+**Data (variable):** A variable-length field that contains the negotiate context
+specified by the **ContextType** field.
+
+##### 2.2.3.1.8 SMB3_POSIX_EXTENSIONS_AVAILABLE
+
+The SMB3_POSIX_EXTENSIONS_AVAILABLE context is specified in an SMB2 NEGOTIATE
+request by the client to indicate that the version of SMB3 POSIX Extensions the
+client supports. The format of the data in the **Data** field of this
+SMB2_NEGOTIATE_CONTEXT is as follows.
+
+<table>
+ <tr>
+  <th><p><br>0</p></th>
+  <th><p><br>1</p></th>
+  <th><p><br>2</p></th>
+  <th><p><br>3</p></th>
+  <th><p><br>4</p></th>
+  <th><p><br>5</p></th>
+  <th><p><br>6</p></th>
+  <th><p><br>7</p></th>
+  <th><p><br>8</p></th>
+  <th><p><br>9</p></th>
+  <th><p>1<br>0</p></th>
+  <th><p><br>1</p></th>
+  <th><p><br>2</p></th>
+  <th><p><br>3</p></th>
+  <th><p><br>4</p></th>
+  <th><p><br>5</p></th>
+  <th><p><br>6</p></th>
+  <th><p><br>7</p></th>
+  <th><p><br>8</p></th>
+  <th><p><br>9</p></th>
+  <th><p>2<br>0</p></th>
+  <th><p><br>1</p></th>
+  <th><p><br>2</p></th>
+  <th><p><br>3</p></th>
+  <th><p><br>4</p></th>
+  <th><p><br>5</p></th>
+  <th><p><br>6</p></th>
+  <th><p><br>7</p></th>
+  <th><p><br>8</p></th>
+  <th><p><br>9</p></th>
+  <th><p>3<br>0</p></th>
+  <th><p><br>1</p></th>
+ </tr>
+ <tr>
+  <td colspan="32">
+  <p>PosixTag</p>
+  </td>
+ </tr>
+ <tr>
+  <td colspan="32">
+  <p>…</p>
+  </td>
+ </tr>
+ <tr>
+  <td colspan="32">
+  <p>…</p>
+  </td>
+ </tr>
+ <tr>
+  <td colspan="32">
+  <p>…</p>
+  </td>
+ </tr>
+</table>
+
+**PosixTag (4 bytes):** A blob indicating the SMB3 Posix version. The following
+versions are defined.
+
+<table><thead>
+  <tr>
+   <th>
+   <p><span>Version</span></p>
+   </th>
+   <th>
+   <p><span>Value</span></p>
+   </th>
+  </tr>
+ </thead><tbody><tr>
+  <td>
+  <p><span>1</span></p>
+  </td>
+  <td>
+  <p><code>\x93\xAD\x25\x50\x9C\xB4\x11\xE7\xB4\x23\x83\xDE\x96\x8B\xCD\x7C</code></p>
+  </td>
+ </tr></tbody></table>
+
+# 3 Protocol Details
\ No newline at end of file