summaryrefslogtreecommitdiff
path: root/fs/cifs/smb2pdu.h
diff options
context:
space:
mode:
authorSteve French <smfrench@gmail.com>2019-04-26 20:36:08 -0700
committerSteve French <stfrench@microsoft.com>2019-05-07 23:24:55 -0500
commit26ea888f6282b0f5c1977d8ddb2fff1ea0238bd7 (patch)
tree5021f89c94babeac98e67aeac765f0590cdf71c8 /fs/cifs/smb2pdu.h
parent392e1c5dc9cc93a8fffbd6230c12c9f38693e634 (diff)
Negotiate and save preferred compression algorithms
New negotiate context (3) allows the server and client to negotiate which compression algorithms to use. Add support for this and save it off in the server structure. Also now displayed in /proc/fs/cifs/DebugData (see below example to Windows 10) where compression algoirthm "LZ77" was negotiated: Servers: Number of credits: 326 Dialect 0x311 COMPRESS_LZ77 signed 1) Name: 192.168.92.17 Uses: 1 Capability: 0x300067 Session Status: 1 TCP status: 1 Instance: 1 See MS-XCA and MS-SMB2 2.2.3.1 for more details. Signed-off-by: Steve French <stfrench@microsoft.com> Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
Diffstat (limited to 'fs/cifs/smb2pdu.h')
-rw-r--r--fs/cifs/smb2pdu.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/fs/cifs/smb2pdu.h b/fs/cifs/smb2pdu.h
index 93dd3b431585..c7d5813bebd8 100644
--- a/fs/cifs/smb2pdu.h
+++ b/fs/cifs/smb2pdu.h
@@ -297,16 +297,19 @@ struct smb2_encryption_neg_context {
} __packed;
/* See MS-SMB2 2.2.3.1.3 */
-#define SMB3_COMPRESS_NONE 0x0000
-#define SMB3_COMPRESS_LZNT1 0x0001
-#define SMB3_COMPRESS_LZ77 0x0002
-#define SMB3_COMPRESS_LZ77_HUFF 0x0003
+#define SMB3_COMPRESS_NONE cpu_to_le16(0x0000)
+#define SMB3_COMPRESS_LZNT1 cpu_to_le16(0x0001)
+#define SMB3_COMPRESS_LZ77 cpu_to_le16(0x0002)
+#define SMB3_COMPRESS_LZ77_HUFF cpu_to_le16(0x0003)
struct smb2_compression_capabilities_context {
+ __le16 ContextType; /* 3 */
+ __le16 DataLength;
+ __u32 Reserved;
__le16 CompressionAlgorithmCount;
__u16 Padding;
- __u32 Reserved;
- __u16 CompressionAlgorithms[1];
+ __u32 Reserved1;
+ __le16 CompressionAlgorithms[3];
} __packed;
/*