2022-06-03 19:15:11 +00:00
|
|
|
/* SPDX-License-Identifier: BSD-3-Clause
|
2019-05-23 09:04:49 +00:00
|
|
|
* Copyright (c) Intel Corporation. All rights reserved.
|
|
|
|
* Copyright (c) 2019 Mellanox Technologies LTD. All rights reserved.
|
2016-06-06 21:44:30 +00:00
|
|
|
*/
|
|
|
|
|
2016-07-14 22:25:23 +00:00
|
|
|
#ifndef SPDK_NVMF_TRANSPORT_H
|
|
|
|
#define SPDK_NVMF_TRANSPORT_H
|
2016-06-06 21:44:30 +00:00
|
|
|
|
2017-05-02 18:18:25 +00:00
|
|
|
#include "spdk/stdinc.h"
|
2016-10-10 16:59:10 +00:00
|
|
|
|
2017-07-13 19:36:44 +00:00
|
|
|
#include "spdk/nvme.h"
|
2016-10-10 16:59:10 +00:00
|
|
|
#include "spdk/nvmf.h"
|
2020-01-30 20:34:06 +00:00
|
|
|
#include "spdk/nvmf_transport.h"
|
2017-07-24 23:30:07 +00:00
|
|
|
|
2020-05-15 01:14:26 +00:00
|
|
|
void nvmf_transport_listener_discover(struct spdk_nvmf_transport *transport,
|
|
|
|
struct spdk_nvme_transport_id *trid,
|
|
|
|
struct spdk_nvmf_discovery_log_page_entry *entry);
|
2017-07-25 20:47:41 +00:00
|
|
|
|
2020-05-15 01:14:26 +00:00
|
|
|
struct spdk_nvmf_transport_poll_group *nvmf_transport_poll_group_create(
|
2021-12-16 11:16:27 +00:00
|
|
|
struct spdk_nvmf_transport *transport, struct spdk_nvmf_poll_group *group);
|
2020-05-15 01:14:26 +00:00
|
|
|
struct spdk_nvmf_transport_poll_group *nvmf_transport_get_optimal_poll_group(
|
2019-05-15 13:53:39 +00:00
|
|
|
struct spdk_nvmf_transport *transport, struct spdk_nvmf_qpair *qpair);
|
2017-07-25 20:47:41 +00:00
|
|
|
|
2020-05-15 01:14:26 +00:00
|
|
|
void nvmf_transport_poll_group_destroy(struct spdk_nvmf_transport_poll_group *group);
|
2017-07-25 20:47:41 +00:00
|
|
|
|
2020-05-15 01:14:26 +00:00
|
|
|
int nvmf_transport_poll_group_add(struct spdk_nvmf_transport_poll_group *group,
|
|
|
|
struct spdk_nvmf_qpair *qpair);
|
2017-07-25 20:47:41 +00:00
|
|
|
|
2020-05-15 01:14:26 +00:00
|
|
|
int nvmf_transport_poll_group_remove(struct spdk_nvmf_transport_poll_group *group,
|
|
|
|
struct spdk_nvmf_qpair *qpair);
|
2018-11-21 02:11:25 +00:00
|
|
|
|
2020-05-15 01:14:26 +00:00
|
|
|
int nvmf_transport_poll_group_poll(struct spdk_nvmf_transport_poll_group *group);
|
2017-08-28 20:48:39 +00:00
|
|
|
|
2020-05-15 01:14:26 +00:00
|
|
|
int nvmf_transport_req_free(struct spdk_nvmf_request *req);
|
2018-07-18 15:47:16 +00:00
|
|
|
|
2020-05-15 01:14:26 +00:00
|
|
|
int nvmf_transport_req_complete(struct spdk_nvmf_request *req);
|
2017-07-25 20:47:41 +00:00
|
|
|
|
2020-11-13 07:23:42 +00:00
|
|
|
void nvmf_transport_qpair_fini(struct spdk_nvmf_qpair *qpair,
|
|
|
|
spdk_nvmf_transport_qpair_fini_cb cb_fn, void *cb_arg);
|
2017-07-25 20:47:41 +00:00
|
|
|
|
2020-05-15 01:14:26 +00:00
|
|
|
int nvmf_transport_qpair_get_peer_trid(struct spdk_nvmf_qpair *qpair,
|
|
|
|
struct spdk_nvme_transport_id *trid);
|
2018-08-02 22:08:12 +00:00
|
|
|
|
2020-05-15 01:14:26 +00:00
|
|
|
int nvmf_transport_qpair_get_local_trid(struct spdk_nvmf_qpair *qpair,
|
|
|
|
struct spdk_nvme_transport_id *trid);
|
2018-09-10 21:28:04 +00:00
|
|
|
|
2020-05-15 01:14:26 +00:00
|
|
|
int nvmf_transport_qpair_get_listen_trid(struct spdk_nvmf_qpair *qpair,
|
2018-09-07 20:41:41 +00:00
|
|
|
struct spdk_nvme_transport_id *trid);
|
|
|
|
|
2020-06-21 15:28:27 +00:00
|
|
|
void nvmf_transport_qpair_abort_request(struct spdk_nvmf_qpair *qpair,
|
|
|
|
struct spdk_nvmf_request *req);
|
|
|
|
|
2022-03-09 11:44:03 +00:00
|
|
|
void nvmf_request_free_stripped_buffers(struct spdk_nvmf_request *req,
|
|
|
|
struct spdk_nvmf_transport_poll_group *group,
|
|
|
|
struct spdk_nvmf_transport *transport);
|
|
|
|
|
|
|
|
int nvmf_request_get_stripped_buffers(struct spdk_nvmf_request *req,
|
|
|
|
struct spdk_nvmf_transport_poll_group *group,
|
|
|
|
struct spdk_nvmf_transport *transport,
|
|
|
|
uint32_t length);
|
|
|
|
|
2016-07-14 22:25:23 +00:00
|
|
|
#endif /* SPDK_NVMF_TRANSPORT_H */
|