| /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| /* |
| * Copyright (c) 2017 Stefan Metzmacher |
| */ |
| |
| #ifndef __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_PDU_H__ |
| #define __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_PDU_H__ |
| |
| #define SMBDIRECT_V1 0x0100 |
| |
| /* SMBD negotiation request packet [MS-SMBD] 2.2.1 */ |
| struct smbdirect_negotiate_req { |
| __le16 min_version; |
| __le16 max_version; |
| __le16 reserved; |
| __le16 credits_requested; |
| __le32 preferred_send_size; |
| __le32 max_receive_size; |
| __le32 max_fragmented_size; |
| } __packed; |
| |
| /* SMBD negotiation response packet [MS-SMBD] 2.2.2 */ |
| struct smbdirect_negotiate_resp { |
| __le16 min_version; |
| __le16 max_version; |
| __le16 negotiated_version; |
| __le16 reserved; |
| __le16 credits_requested; |
| __le16 credits_granted; |
| __le32 status; |
| __le32 max_readwrite_size; |
| __le32 preferred_send_size; |
| __le32 max_receive_size; |
| __le32 max_fragmented_size; |
| } __packed; |
| |
| #define SMBDIRECT_DATA_MIN_HDR_SIZE 0x14 |
| #define SMBDIRECT_DATA_OFFSET 0x18 |
| |
| #define SMBDIRECT_FLAG_RESPONSE_REQUESTED 0x0001 |
| |
| /* SMBD data transfer packet with payload [MS-SMBD] 2.2.3 */ |
| struct smbdirect_data_transfer { |
| __le16 credits_requested; |
| __le16 credits_granted; |
| __le16 flags; |
| __le16 reserved; |
| __le32 remaining_data_length; |
| __le32 data_offset; |
| __le32 data_length; |
| __le32 padding; |
| __u8 buffer[]; |
| } __packed; |
| |
| #endif /* __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_PDU_H__ */ |