Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.5.6.
 1/* SPDX-License-Identifier: GPL-2.0 */
 2/*
 3 * Copyright (c) 2015 Mellanox Technologies. All rights reserved.
 4 */
 5
 6#ifndef _LINUX_NVME_RDMA_H
 7#define _LINUX_NVME_RDMA_H
 8
 9enum nvme_rdma_cm_fmt {
10	NVME_RDMA_CM_FMT_1_0 = 0x0,
11};
12
13enum nvme_rdma_cm_status {
14	NVME_RDMA_CM_INVALID_LEN	= 0x01,
15	NVME_RDMA_CM_INVALID_RECFMT	= 0x02,
16	NVME_RDMA_CM_INVALID_QID	= 0x03,
17	NVME_RDMA_CM_INVALID_HSQSIZE	= 0x04,
18	NVME_RDMA_CM_INVALID_HRQSIZE	= 0x05,
19	NVME_RDMA_CM_NO_RSC		= 0x06,
20	NVME_RDMA_CM_INVALID_IRD	= 0x07,
21	NVME_RDMA_CM_INVALID_ORD	= 0x08,
22};
23
24static inline const char *nvme_rdma_cm_msg(enum nvme_rdma_cm_status status)
25{
26	switch (status) {
27	case NVME_RDMA_CM_INVALID_LEN:
28		return "invalid length";
29	case NVME_RDMA_CM_INVALID_RECFMT:
30		return "invalid record format";
31	case NVME_RDMA_CM_INVALID_QID:
32		return "invalid queue ID";
33	case NVME_RDMA_CM_INVALID_HSQSIZE:
34		return "invalid host SQ size";
35	case NVME_RDMA_CM_INVALID_HRQSIZE:
36		return "invalid host RQ size";
37	case NVME_RDMA_CM_NO_RSC:
38		return "resource not found";
39	case NVME_RDMA_CM_INVALID_IRD:
40		return "invalid IRD";
41	case NVME_RDMA_CM_INVALID_ORD:
42		return "Invalid ORD";
43	default:
44		return "unrecognized reason";
45	}
46}
47
48/**
49 * struct nvme_rdma_cm_req - rdma connect request
50 *
51 * @recfmt:        format of the RDMA Private Data
52 * @qid:           queue Identifier for the Admin or I/O Queue
53 * @hrqsize:       host receive queue size to be created
54 * @hsqsize:       host send queue size to be created
55 */
56struct nvme_rdma_cm_req {
57	__le16		recfmt;
58	__le16		qid;
59	__le16		hrqsize;
60	__le16		hsqsize;
61	u8		rsvd[24];
62};
63
64/**
65 * struct nvme_rdma_cm_rep - rdma connect reply
66 *
67 * @recfmt:        format of the RDMA Private Data
68 * @crqsize:       controller receive queue size
69 */
70struct nvme_rdma_cm_rep {
71	__le16		recfmt;
72	__le16		crqsize;
73	u8		rsvd[28];
74};
75
76/**
77 * struct nvme_rdma_cm_rej - rdma connect reject
78 *
79 * @recfmt:        format of the RDMA Private Data
80 * @sts:           error status for the associated connect request
81 */
82struct nvme_rdma_cm_rej {
83	__le16		recfmt;
84	__le16		sts;
85};
86
87#endif /* _LINUX_NVME_RDMA_H */