xref: /spdk/lib/nvmf/transport.h (revision aac967c0d312ef9076b316afd934926f687e5336)
1 /*   SPDX-License-Identifier: BSD-3-Clause
2  *   Copyright (C) 2016 Intel Corporation. All rights reserved.
3  *   Copyright (c) 2019 Mellanox Technologies LTD. All rights reserved.
4  */
5 
6 #ifndef SPDK_NVMF_TRANSPORT_H
7 #define SPDK_NVMF_TRANSPORT_H
8 
9 #include "spdk/stdinc.h"
10 
11 #include "spdk/nvme.h"
12 #include "spdk/nvmf.h"
13 #include "spdk/nvmf_transport.h"
14 
15 void nvmf_transport_listener_discover(struct spdk_nvmf_transport *transport,
16 				      struct spdk_nvme_transport_id *trid,
17 				      struct spdk_nvmf_discovery_log_page_entry *entry);
18 
19 struct spdk_nvmf_transport_poll_group *nvmf_transport_poll_group_create(
20 	struct spdk_nvmf_transport *transport, struct spdk_nvmf_poll_group *group);
21 struct spdk_nvmf_transport_poll_group *nvmf_transport_get_optimal_poll_group(
22 	struct spdk_nvmf_transport *transport, struct spdk_nvmf_qpair *qpair);
23 
24 void nvmf_transport_poll_group_destroy(struct spdk_nvmf_transport_poll_group *group);
25 
26 void nvmf_transport_poll_group_pause(struct spdk_nvmf_transport_poll_group *group);
27 void nvmf_transport_poll_group_resume(struct spdk_nvmf_transport_poll_group *group);
28 
29 int nvmf_transport_poll_group_add(struct spdk_nvmf_transport_poll_group *group,
30 				  struct spdk_nvmf_qpair *qpair);
31 
32 int nvmf_transport_poll_group_remove(struct spdk_nvmf_transport_poll_group *group,
33 				     struct spdk_nvmf_qpair *qpair);
34 
35 int nvmf_transport_poll_group_poll(struct spdk_nvmf_transport_poll_group *group);
36 
37 int nvmf_transport_req_free(struct spdk_nvmf_request *req);
38 
39 int nvmf_transport_req_complete(struct spdk_nvmf_request *req);
40 
41 void nvmf_transport_qpair_fini(struct spdk_nvmf_qpair *qpair,
42 			       spdk_nvmf_transport_qpair_fini_cb cb_fn, void *cb_arg);
43 
44 int nvmf_transport_qpair_get_peer_trid(struct spdk_nvmf_qpair *qpair,
45 				       struct spdk_nvme_transport_id *trid);
46 
47 int nvmf_transport_qpair_get_local_trid(struct spdk_nvmf_qpair *qpair,
48 					struct spdk_nvme_transport_id *trid);
49 
50 int nvmf_transport_qpair_get_listen_trid(struct spdk_nvmf_qpair *qpair,
51 		struct spdk_nvme_transport_id *trid);
52 
53 void nvmf_transport_qpair_abort_request(struct spdk_nvmf_qpair *qpair,
54 					struct spdk_nvmf_request *req);
55 
56 void nvmf_request_free_stripped_buffers(struct spdk_nvmf_request *req,
57 					struct spdk_nvmf_transport_poll_group *group,
58 					struct spdk_nvmf_transport *transport);
59 
60 int nvmf_request_get_stripped_buffers(struct spdk_nvmf_request *req,
61 				      struct spdk_nvmf_transport_poll_group *group,
62 				      struct spdk_nvmf_transport *transport,
63 				      uint32_t length);
64 
65 bool nvmf_request_get_buffers_abort(struct spdk_nvmf_request *req);
66 
67 #endif /* SPDK_NVMF_TRANSPORT_H */
68