| /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| /* |
| * Copyright (c) 2025 Stefan Metzmacher |
| */ |
| |
| #ifndef __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_SOCKET_H__ |
| #define __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_SOCKET_H__ |
| |
| enum smbdirect_socket_status { |
| SMBDIRECT_SOCKET_CREATED, |
| SMBDIRECT_SOCKET_CONNECTING, |
| SMBDIRECT_SOCKET_CONNECTED, |
| SMBDIRECT_SOCKET_NEGOTIATE_FAILED, |
| SMBDIRECT_SOCKET_DISCONNECTING, |
| SMBDIRECT_SOCKET_DISCONNECTED, |
| SMBDIRECT_SOCKET_DESTROYED |
| }; |
| |
| struct smbdirect_socket { |
| enum smbdirect_socket_status status; |
| |
| /* RDMA related */ |
| struct { |
| struct rdma_cm_id *cm_id; |
| } rdma; |
| |
| /* IB verbs related */ |
| struct { |
| struct ib_pd *pd; |
| struct ib_cq *send_cq; |
| struct ib_cq *recv_cq; |
| |
| /* |
| * shortcuts for rdma.cm_id->{qp,device}; |
| */ |
| struct ib_qp *qp; |
| struct ib_device *dev; |
| } ib; |
| |
| struct smbdirect_socket_parameters parameters; |
| }; |
| |
| #endif /* __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_SOCKET_H__ */ |