mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 03:11:11 -04:00
smb: smbdirect: introduce and use include/linux/smbdirect.h
This makes it easier to rebuild cifs.ko and ksmbd.ko against a running kernel. Suggested-by: Christoph Hellwig <hch@infradead.org> Link: https://lore.kernel.org/linux-cifs/aehrPuY60VMcYGU8@infradead.org/ Cc: Steve French <smfrench@gmail.com> Cc: Tom Talpey <tom@talpey.com> Cc: Long Li <longli@microsoft.com> Cc: Namjae Jeon <linkinjeon@kernel.org> Cc: Christoph Hellwig <hch@infradead.org> Cc: linux-cifs@vger.kernel.org Cc: samba-technical@lists.samba.org Signed-off-by: Stefan Metzmacher <metze@samba.org> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
committed by
Steve French
parent
5234094c01
commit
e768103cfb
@@ -24650,6 +24650,7 @@ S: Maintained
|
||||
F: fs/smb/client/smbdirect.*
|
||||
F: fs/smb/smbdirect/
|
||||
F: fs/smb/server/transport_rdma.*
|
||||
F: include/linux/smbdirect.h
|
||||
|
||||
SMC91x ETHERNET DRIVER
|
||||
M: Nicolas Pitre <nico@fluxnic.net>
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#include "cifs_debug.h"
|
||||
#include "cifsproto.h"
|
||||
#include "smb2proto.h"
|
||||
#include "../smbdirect/public.h"
|
||||
|
||||
/* Port numbers for SMBD transport */
|
||||
#define SMB_PORT 445
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
#include "cifsglob.h"
|
||||
|
||||
#include "../smbdirect/smbdirect.h"
|
||||
#include <linux/smbdirect.h>
|
||||
|
||||
extern int rdma_readwrite_threshold;
|
||||
extern int smbd_max_frmr_depth;
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
#include "smb_common.h"
|
||||
#include "../common/smb2status.h"
|
||||
#include "transport_rdma.h"
|
||||
#include "../smbdirect/public.h"
|
||||
|
||||
|
||||
#define SMB_DIRECT_PORT_IWARP 5445
|
||||
|
||||
@@ -25,6 +25,6 @@ static inline void init_smbd_max_io_size(unsigned int sz) { }
|
||||
static inline unsigned int get_smbd_max_read_write_size(struct ksmbd_transport *kt) { return 0; }
|
||||
#endif
|
||||
|
||||
#include "../smbdirect/smbdirect.h"
|
||||
#include <linux/smbdirect.h>
|
||||
|
||||
#endif /* __KSMBD_TRANSPORT_RDMA_H__ */
|
||||
|
||||
@@ -9,9 +9,8 @@
|
||||
#define DEFAULT_SYMBOL_NAMESPACE "SMBDIRECT"
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include "smbdirect.h"
|
||||
#include <linux/smbdirect.h>
|
||||
#include "pdu.h"
|
||||
#include "public.h"
|
||||
|
||||
#include <linux/mutex.h>
|
||||
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (C) 2025 Stefan Metzmacher
|
||||
*/
|
||||
|
||||
#ifndef __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_H__
|
||||
#define __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/* SMB-DIRECT buffer descriptor V1 structure [MS-SMBD] 2.2.3.1 */
|
||||
struct smbdirect_buffer_descriptor_v1 {
|
||||
__le64 offset;
|
||||
__le32 token;
|
||||
__le32 length;
|
||||
} __packed;
|
||||
|
||||
/*
|
||||
* Connection parameters mostly from [MS-SMBD] 3.1.1.1
|
||||
*
|
||||
* These are setup and negotiated at the beginning of a
|
||||
* connection and remain constant unless explicitly changed.
|
||||
*
|
||||
* Some values are important for the upper layer.
|
||||
*/
|
||||
struct smbdirect_socket_parameters {
|
||||
__u64 flags;
|
||||
#define SMBDIRECT_FLAG_PORT_RANGE_ONLY_IB ((__u64)0x1)
|
||||
#define SMBDIRECT_FLAG_PORT_RANGE_ONLY_IW ((__u64)0x2)
|
||||
__u32 resolve_addr_timeout_msec;
|
||||
__u32 resolve_route_timeout_msec;
|
||||
__u32 rdma_connect_timeout_msec;
|
||||
__u32 negotiate_timeout_msec;
|
||||
__u16 initiator_depth; /* limited to U8_MAX */
|
||||
__u16 responder_resources; /* limited to U8_MAX */
|
||||
__u16 recv_credit_max;
|
||||
__u16 send_credit_target;
|
||||
__u32 max_send_size;
|
||||
__u32 max_fragmented_send_size;
|
||||
__u32 max_recv_size;
|
||||
__u32 max_fragmented_recv_size;
|
||||
__u32 max_read_write_size;
|
||||
__u32 max_frmr_depth;
|
||||
__u32 keepalive_interval_msec;
|
||||
__u32 keepalive_timeout_msec;
|
||||
} __packed;
|
||||
|
||||
#define SMBDIRECT_FLAG_PORT_RANGE_MASK ( \
|
||||
SMBDIRECT_FLAG_PORT_RANGE_ONLY_IB | \
|
||||
SMBDIRECT_FLAG_PORT_RANGE_ONLY_IW)
|
||||
|
||||
#endif /* __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_H__ */
|
||||
@@ -3,11 +3,51 @@
|
||||
* Copyright (C) 2025, Stefan Metzmacher
|
||||
*/
|
||||
|
||||
#ifndef __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_PUBLIC_H__
|
||||
#define __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_PUBLIC_H__
|
||||
#ifndef __LINUX_SMBDIRECT_H__
|
||||
#define __LINUX_SMBDIRECT_H__
|
||||
|
||||
struct smbdirect_buffer_descriptor_v1;
|
||||
struct smbdirect_socket_parameters;
|
||||
#include <linux/types.h>
|
||||
|
||||
/* SMB-DIRECT buffer descriptor V1 structure [MS-SMBD] 2.2.3.1 */
|
||||
struct smbdirect_buffer_descriptor_v1 {
|
||||
__le64 offset;
|
||||
__le32 token;
|
||||
__le32 length;
|
||||
} __packed;
|
||||
|
||||
/*
|
||||
* Connection parameters mostly from [MS-SMBD] 3.1.1.1
|
||||
*
|
||||
* These are setup and negotiated at the beginning of a
|
||||
* connection and remain constant unless explicitly changed.
|
||||
*
|
||||
* Some values are important for the upper layer.
|
||||
*/
|
||||
struct smbdirect_socket_parameters {
|
||||
__u64 flags;
|
||||
#define SMBDIRECT_FLAG_PORT_RANGE_ONLY_IB ((__u64)0x1)
|
||||
#define SMBDIRECT_FLAG_PORT_RANGE_ONLY_IW ((__u64)0x2)
|
||||
__u32 resolve_addr_timeout_msec;
|
||||
__u32 resolve_route_timeout_msec;
|
||||
__u32 rdma_connect_timeout_msec;
|
||||
__u32 negotiate_timeout_msec;
|
||||
__u16 initiator_depth; /* limited to U8_MAX */
|
||||
__u16 responder_resources; /* limited to U8_MAX */
|
||||
__u16 recv_credit_max;
|
||||
__u16 send_credit_target;
|
||||
__u32 max_send_size;
|
||||
__u32 max_fragmented_send_size;
|
||||
__u32 max_recv_size;
|
||||
__u32 max_fragmented_recv_size;
|
||||
__u32 max_read_write_size;
|
||||
__u32 max_frmr_depth;
|
||||
__u32 keepalive_interval_msec;
|
||||
__u32 keepalive_timeout_msec;
|
||||
} __packed;
|
||||
|
||||
#define SMBDIRECT_FLAG_PORT_RANGE_MASK ( \
|
||||
SMBDIRECT_FLAG_PORT_RANGE_ONLY_IB | \
|
||||
SMBDIRECT_FLAG_PORT_RANGE_ONLY_IW)
|
||||
|
||||
struct smbdirect_socket;
|
||||
struct smbdirect_send_batch;
|
||||
@@ -143,4 +183,4 @@ void smbdirect_connection_legacy_debug_proc_show(struct smbdirect_socket *sc,
|
||||
unsigned int rdma_readwrite_threshold,
|
||||
struct seq_file *m);
|
||||
|
||||
#endif /* __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_PUBLIC_H__ */
|
||||
#endif /* __LINUX_SMBDIRECT_H__ */
|
||||
Reference in New Issue
Block a user