xref: /linux/fs/smb/common/smbdirect/smbdirect.h (revision a9401710a5f5681abd2a6f21f9e76bc9f2e81891)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  *   Copyright (C) 2017, Microsoft Corporation.
4  *   Copyright (C) 2018, LG Electronics.
5  */
6 
7 #ifndef __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_H__
8 #define __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_H__
9 
10 /* SMB-DIRECT buffer descriptor V1 structure [MS-SMBD] 2.2.3.1 */
11 struct smbdirect_buffer_descriptor_v1 {
12 	__le64 offset;
13 	__le32 token;
14 	__le32 length;
15 } __packed;
16 
17 /*
18  * Connection parameters mostly from [MS-SMBD] 3.1.1.1
19  *
20  * These are setup and negotiated at the beginning of a
21  * connection and remain constant unless explicitly changed.
22  *
23  * Some values are important for the upper layer.
24  */
25 struct smbdirect_socket_parameters {
26 	__u32 resolve_addr_timeout_msec;
27 	__u32 resolve_route_timeout_msec;
28 	__u32 rdma_connect_timeout_msec;
29 	__u32 negotiate_timeout_msec;
30 	__u8  initiator_depth;
31 	__u8  responder_resources;
32 	__u16 recv_credit_max;
33 	__u16 send_credit_target;
34 	__u32 max_send_size;
35 	__u32 max_fragmented_send_size;
36 	__u32 max_recv_size;
37 	__u32 max_fragmented_recv_size;
38 	__u32 max_read_write_size;
39 	__u32 max_frmr_depth;
40 	__u32 keepalive_interval_msec;
41 	__u32 keepalive_timeout_msec;
42 } __packed;
43 
44 #endif /* __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_H__ */
45