linux/fs/cifs
Tim Gardner 3d378d3fd8 cifs: Make big endian multiplex ID sequences monotonic on the wire
The multiplex identifier (MID) in the SMB header is only
ever used by the client, in conjunction with PID, to match responses
from the server. As such, the endianess of the MID is not important.
However, When tracing packet sequences on the wire, protocol analyzers
such as wireshark display MID as little endian. It is much more informative
for the on-the-wire MID sequences to match debug information emitted by the
CIFS driver.  Therefore, one should write and read MID in the SMB header
assuming it is always little endian.

Observed from wireshark during the protocol negotiation
and session setup:

        Multiplex ID: 256
        Multiplex ID: 256
        Multiplex ID: 512
        Multiplex ID: 512
        Multiplex ID: 768
        Multiplex ID: 768

After this patch on-the-wire MID values begin at 1 and increase monotonically.

Introduce get_next_mid64() for the internal consumers that use the full 64 bit
multiplex identifier.

Introduce the helpers get_mid() and compare_mid() to make the endian
translation clear.

Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Tim Gardner <timg@tpi.com>
Signed-off-by: Steve French <smfrench@gmail.com>
2013-11-02 12:51:53 -05:00
..
asn1.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
cache.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
cifs_debug.c cifs: try to handle the MUST SecurityFlags sanely 2013-06-26 17:31:55 -05:00
cifs_debug.h [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
cifs_dfs_ref.c cifs: fix composing of mount options for DFS referrals 2013-05-24 13:08:31 -05:00
cifs_fs_sb.h
cifs_spnego.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
cifs_spnego.h
cifs_unicode.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
cifs_unicode.h cifs: add new case-insensitive conversion routines that are based on wchar_t's 2013-09-08 14:38:05 -05:00
cifs_uniupr.h
cifsacl.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
cifsacl.h
cifsencrypt.c cifs: fix bad error handling in crypto code 2013-07-31 13:44:59 -05:00
cifsfs.c cifs: Fix inability to write files >2GB to SMB2/3 shares 2013-10-07 09:54:45 -05:00
cifsfs.h [CIFS] update cifs.ko version 2013-09-25 19:01:27 -05:00
cifsglob.h cifs: Make big endian multiplex ID sequences monotonic on the wire 2013-11-02 12:51:53 -05:00
cifspdu.h cifs: Make big endian multiplex ID sequences monotonic on the wire 2013-11-02 12:51:53 -05:00
cifsproto.h cifs: Start using per session key for smb2/3 for signature generation 2013-09-08 14:47:50 -05:00
cifssmb.c do not treat non-symlink reparse points as valid symlinks 2013-10-05 21:54:18 -05:00
connect.c CIFS: Store lease state itself rather than a mapped oplock value 2013-09-09 22:52:05 -05:00
dir.c cifs: fix filp leak in cifs_atomic_open() 2013-09-16 19:17:24 -04:00
dns_resolve.c cifs: fix composing of mount options for DFS referrals 2013-05-24 13:08:31 -05:00
dns_resolve.h
export.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
file.c CIFS: FS-Cache: Uncache unread pages in cifs_readpages() before freeing them 2013-09-18 10:17:03 -05:00
fscache.c CIFS: FS-Cache: Uncache unread pages in cifs_readpages() before freeing them 2013-09-18 10:17:03 -05:00
fscache.h CIFS: FS-Cache: Uncache unread pages in cifs_readpages() before freeing them 2013-09-18 10:17:03 -05:00
inode.c [CIFS] Provide sane values for nlink 2013-09-21 10:36:10 -05:00
ioctl.c Allow setting per-file compression via SMB2/3 2013-10-28 09:22:31 -05:00
Kconfig [CIFS] SMB3 Signing enablement 2013-06-26 23:45:05 -05:00
link.c CIFS: Implement follow_link for SMB2 2013-09-08 14:27:34 -05:00
Makefile cifs: add new case-insensitive conversion routines that are based on wchar_t's 2013-09-08 14:38:05 -05:00
misc.c cifs: Make big endian multiplex ID sequences monotonic on the wire 2013-11-02 12:51:53 -05:00
netmisc.c cifs: ntstatus_to_dos_map[] is not terminated 2013-10-14 12:14:01 -05:00
nterr.c
nterr.h
ntlmssp.h
readdir.c [CIFS] Provide sane values for nlink 2013-09-21 10:36:10 -05:00
rfc1002pdu.h
sess.c cifs: Allow LANMAN auth method for servers supporting unencapsulated authentication methods 2013-10-07 09:57:11 -05:00
smb1ops.c cifs: Make big endian multiplex ID sequences monotonic on the wire 2013-11-02 12:51:53 -05:00
smb2file.c CIFS: Store lease state itself rather than a mapped oplock value 2013-09-09 22:52:05 -05:00
smb2glob.h [CIFS] SMB3 Signing enablement 2013-06-26 23:45:05 -05:00
smb2inode.c CIFS: Implement follow_link for SMB2 2013-09-08 14:27:34 -05:00
smb2maperror.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
smb2misc.c CIFS: Respect epoch value from create lease context v2 2013-09-09 22:52:18 -05:00
smb2ops.c Query file system attributes from server on SMB2, not just cifs, mounts 2013-10-28 09:22:55 -05:00
smb2pdu.c Query file system attributes from server on SMB2, not just cifs, mounts 2013-10-28 09:22:55 -05:00
smb2pdu.h Allow setting per-file compression via SMB2/3 2013-10-28 09:22:31 -05:00
smb2proto.h Query file system attributes from server on SMB2, not just cifs, mounts 2013-10-28 09:22:55 -05:00
smb2status.h
smb2transport.c cifs: Make big endian multiplex ID sequences monotonic on the wire 2013-11-02 12:51:53 -05:00
smbencrypt.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00
smberr.h
smbfsctl.h do not treat non-symlink reparse points as valid symlinks 2013-10-05 21:54:18 -05:00
transport.c cifs: Make big endian multiplex ID sequences monotonic on the wire 2013-11-02 12:51:53 -05:00
winucase.c [CIFS] quiet sparse compile warning 2013-09-08 14:54:24 -05:00
xattr.c [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg 2013-05-04 22:17:23 -05:00