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 int nvmf_transport_poll_group_add(struct spdk_nvmf_transport_poll_group *group, 27 struct spdk_nvmf_qpair *qpair); 28 29 int nvmf_transport_poll_group_remove(struct spdk_nvmf_transport_poll_group *group, 30 struct spdk_nvmf_qpair *qpair); 31 32 int nvmf_transport_poll_group_poll(struct spdk_nvmf_transport_poll_group *group); 33 34 int nvmf_transport_req_free(struct spdk_nvmf_request *req); 35 36 int nvmf_transport_req_complete(struct spdk_nvmf_request *req); 37 38 void nvmf_transport_qpair_fini(struct spdk_nvmf_qpair *qpair, 39 spdk_nvmf_transport_qpair_fini_cb cb_fn, void *cb_arg); 40 41 int nvmf_transport_qpair_get_peer_trid(struct spdk_nvmf_qpair *qpair, 42 struct spdk_nvme_transport_id *trid); 43 44 int nvmf_transport_qpair_get_local_trid(struct spdk_nvmf_qpair *qpair, 45 struct spdk_nvme_transport_id *trid); 46 47 int nvmf_transport_qpair_get_listen_trid(struct spdk_nvmf_qpair *qpair, 48 struct spdk_nvme_transport_id *trid); 49 50 void nvmf_transport_qpair_abort_request(struct spdk_nvmf_qpair *qpair, 51 struct spdk_nvmf_request *req); 52 53 void nvmf_request_free_stripped_buffers(struct spdk_nvmf_request *req, 54 struct spdk_nvmf_transport_poll_group *group, 55 struct spdk_nvmf_transport *transport); 56 57 int nvmf_request_get_stripped_buffers(struct spdk_nvmf_request *req, 58 struct spdk_nvmf_transport_poll_group *group, 59 struct spdk_nvmf_transport *transport, 60 uint32_t length); 61 62 bool nvmf_request_get_buffers_abort(struct spdk_nvmf_request *req); 63 64 #endif /* SPDK_NVMF_TRANSPORT_H */ 65