__le32 Reserved2;
 } __packed;
 
-struct smb2_rdma_encryption_transform {
+/* TransformType */
+#define SMB2_RDMA_TRANSFORM_TYPE_ENCRYPTION    0x0001
+#define SMB2_RDMA_TRANSFORM_TYPE_SIGNING       0x0002
+
+struct smb2_rdma_crypto_transform {
        __le16  TransformType;
        __le16  SignatureLength;
        __le16  NonceLength;
 } __packed;
 
 /*
- * For rdma transform capabilities context see MS-SMB2 2.2.3.1.6
+ * For smb2_transport_capabilities context see MS-SMB2 2.2.3.1.5
  * and 2.2.4.1.5
  */
 
+/* Flags */
+#define SMB2_ACCEPT_TRANSFORM_LEVEL_SECURITY   0x00000001
+
+struct smb2_transport_capabilities_context {
+       __le16  ContextType; /* 6 */
+       __le16  DataLength;
+       __u32   Reserved;
+       __le32  Flags;
+} __packed;
+
+/*
+ * For rdma transform capabilities context see MS-SMB2 2.2.3.1.6
+ * and 2.2.4.1.6
+ */
+
 /* RDMA Transform IDs */
 #define SMB2_RDMA_TRANSFORM_NONE       0x0000
 #define SMB2_RDMA_TRANSFORM_ENCRYPTION 0x0001
+#define SMB2_RDMA_TRANSFORM_SIGNING    0x0002
 
 struct smb2_rdma_transform_capabilities_context {
        __le16  ContextType; /* 7 */
        __le16  RDMATransformIds[];
 } __packed;
 
+/*
+ * For signing capabilities context see MS-SMB2 2.2.3.1.7
+ * and 2.2.4.1.7
+ */
+
 /* Signing algorithms */
 #define SIGNING_ALG_HMAC_SHA256        0
 #define SIGNING_ALG_AES_CMAC   1
 #define SHI1005_FLAGS_ENABLE_HASH_V2                   0x00004000
 #define SHI1005_FLAGS_ENCRYPT_DATA                     0x00008000
 #define SMB2_SHAREFLAG_IDENTITY_REMOTING               0x00040000 /* 3.1.1 */
-#define SHI1005_FLAGS_ALL                              0x0004FF33
+#define SMB2_SHAREFLAG_COMPRESS_DATA                   0x00100000 /* 3.1.1 */
+#define SHI1005_FLAGS_ALL                              0x0014FF33
 
 /* Possible share capabilities */
 #define SMB2_SHARE_CAP_DFS     cpu_to_le32(0x00000008) /* all dialects */
        struct smb2_sync_hdr sync_hdr;
        __le16 StructureSize; /* Must be 48 */
        __le16 LockCount;
-       __le32 Reserved;
+       /*
+        * The least significant four bits are the index, the other 28 bits are
+        * the lock sequence number (0 to 64). See MS-SMB2 2.2.26
+        */
+       __le32 LockSequenceNumber;
        __u64  PersistentFileId; /* opaque endianness */
        __u64  VolatileFileId; /* opaque endianness */
        /* Followed by at least one */