| /* |
| * fs/cifs/smb2pdu.h |
| * |
| * Copyright (c) International Business Machines Corp., 2009, 2010 |
| * Etersoft, 2012 |
| * Author(s): Steve French (sfrench@us.ibm.com) |
| * Pavel Shilovsky (pshilovsky@samba.org) 2012 |
| * |
| * This library is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU Lesser General Public License as published |
| * by the Free Software Foundation; either version 2.1 of the License, or |
| * (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See |
| * the GNU Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public License |
| * along with this library; if not, write to the Free Software |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| */ |
| |
| #ifndef _SMB2PDU_H |
| #define _SMB2PDU_H |
| |
| #include <net/sock.h> |
| |
| /* |
| * SMB2 Header Definition |
| * |
| * "MBZ" : Must be Zero |
| * "BB" : BugBug, Something to check/review/analyze later |
| * "PDU" : "Protocol Data Unit" (ie a network "frame") |
| * |
| */ |
| struct smb2_hdr { |
| __be32 smb2_buf_length; /* big endian on wire */ |
| /* length is only two or three bytes - with |
| one or two byte type preceding it that MBZ */ |
| __u8 ProtocolId[4]; /* 0xFE 'S' 'M' 'B' */ |
| __le16 StructureSize; /* 64 */ |
| __le16 CreditCharge; /* MBZ */ |
| __le32 Status; /* Error from server */ |
| __le16 Command; |
| __le16 CreditRequest; /* CreditResponse */ |
| __le32 Flags; |
| __le32 NextCommand; |
| __u64 MessageId; /* opaque - so can stay little endian */ |
| __le32 ProcessId; |
| __u32 TreeId; /* opaque - so do not make little endian */ |
| __u64 SessionId; /* opaque - so do not make little endian */ |
| __u8 Signature[16]; |
| } __packed; |
| |
| #endif /* _SMB2PDU_H */ |