nvmf: Remove spdk_nvmf_listen_addr
Everywhere this is used, we can just use spdk_nvme_transport_id instead. Change-Id: I407c812cd6a1ca3afcb3d1fe87c7e22183b09d7a Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.gerrithub.io/375461 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
ff4f68a55f
commit
6428de9e34
@ -362,8 +362,7 @@ spdk_nvmf_construct_subsystem(const char *name, int32_t lcore,
|
||||
{
|
||||
struct spdk_nvmf_subsystem *subsystem;
|
||||
struct nvmf_tgt_subsystem *app_subsys;
|
||||
struct spdk_nvmf_listen_addr *listen_addr;
|
||||
int i;
|
||||
int i, rc;
|
||||
uint64_t mask;
|
||||
struct spdk_bdev *bdev;
|
||||
const char *namespace;
|
||||
@ -429,8 +428,8 @@ spdk_nvmf_construct_subsystem(const char *name, int32_t lcore,
|
||||
snprintf(trid.traddr, sizeof(trid.traddr), "%s", addresses[i].traddr);
|
||||
snprintf(trid.trsvcid, sizeof(trid.trsvcid), "%s", addresses[i].trsvcid);
|
||||
|
||||
listen_addr = spdk_nvmf_tgt_listen(g_tgt, &trid);
|
||||
if (listen_addr == NULL) {
|
||||
rc = spdk_nvmf_tgt_listen(g_tgt, &trid);
|
||||
if (rc) {
|
||||
SPDK_ERRLOG("Failed to listen on transport %s, adrfam %s, traddr %s, trsvcid %s\n",
|
||||
addresses[i].transport,
|
||||
addresses[i].adrfam,
|
||||
@ -438,7 +437,7 @@ spdk_nvmf_construct_subsystem(const char *name, int32_t lcore,
|
||||
addresses[i].trsvcid);
|
||||
goto error;
|
||||
}
|
||||
spdk_nvmf_subsystem_add_listener(subsystem, listen_addr);
|
||||
spdk_nvmf_subsystem_add_listener(subsystem, &trid);
|
||||
}
|
||||
|
||||
/* Parse Host sections */
|
||||
|
@ -77,9 +77,14 @@ void spdk_nvmf_tgt_destroy(struct spdk_nvmf_tgt *tgt);
|
||||
* The connections will be matched with a subsystem, which may or may not allow
|
||||
* the connection based on a subsystem-specific whitelist. See
|
||||
* spdk_nvmf_subsystem_add_host() and spdk_nvmf_subsystem_add_listener()
|
||||
*
|
||||
* \param tgt The target associated with this listen address
|
||||
* \param trid The address to listen at
|
||||
*
|
||||
* \return 0 on success. Negated errno on failure.
|
||||
*/
|
||||
struct spdk_nvmf_listen_addr *spdk_nvmf_tgt_listen(struct spdk_nvmf_tgt *tgt,
|
||||
struct spdk_nvme_transport_id *trid);
|
||||
int spdk_nvmf_tgt_listen(struct spdk_nvmf_tgt *tgt,
|
||||
struct spdk_nvme_transport_id *trid);
|
||||
|
||||
/**
|
||||
* Poll the target for incoming connections.
|
||||
@ -98,11 +103,6 @@ struct spdk_nvmf_listener;
|
||||
typedef void (*spdk_nvmf_subsystem_connect_fn)(void *cb_ctx, struct spdk_nvmf_request *req);
|
||||
typedef void (*spdk_nvmf_subsystem_disconnect_fn)(void *cb_ctx, struct spdk_nvmf_qpair *qpair);
|
||||
|
||||
struct spdk_nvmf_listen_addr {
|
||||
struct spdk_nvme_transport_id trid;
|
||||
TAILQ_ENTRY(spdk_nvmf_listen_addr) link;
|
||||
};
|
||||
|
||||
/*
|
||||
* The NVMf subsystem, as indicated in the specification, is a collection
|
||||
* of controllers. Any individual controller has
|
||||
@ -180,21 +180,21 @@ const char *spdk_nvmf_host_get_nqn(struct spdk_nvmf_host *host);
|
||||
* Accept new connections on the address provided
|
||||
*
|
||||
* \param subsystem Subsystem to add listener to
|
||||
* \param listen_addr The address to listen on.
|
||||
* \param trid The address to accept connections from
|
||||
* \return 0 on success. Negated errno value on failure.
|
||||
*/
|
||||
int spdk_nvmf_subsystem_add_listener(struct spdk_nvmf_subsystem *subsystem,
|
||||
struct spdk_nvmf_listen_addr *listen_addr);
|
||||
struct spdk_nvme_transport_id *trid);
|
||||
|
||||
/**
|
||||
* Check if connections originated from the given address are allowed to connect to the subsystem.
|
||||
*
|
||||
* \param subsystem The subsystem to query
|
||||
* \param listen_addr The listen address
|
||||
* \param trid The listen address
|
||||
* \return true if allowed, false if not.
|
||||
*/
|
||||
bool spdk_nvmf_subsystem_listener_allowed(struct spdk_nvmf_subsystem *subsystem,
|
||||
struct spdk_nvmf_listen_addr *listen_addr);
|
||||
struct spdk_nvme_transport_id *trid);
|
||||
|
||||
/**
|
||||
* Return the first allowed listen address in the subsystem.
|
||||
|
@ -56,7 +56,6 @@ nvmf_update_discovery_log(struct spdk_nvmf_tgt *tgt)
|
||||
uint64_t numrec = 0;
|
||||
struct spdk_nvmf_subsystem *subsystem;
|
||||
struct spdk_nvmf_listener *listener;
|
||||
struct spdk_nvmf_listen_addr *listen_addr;
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry;
|
||||
struct spdk_nvmf_transport *transport;
|
||||
struct spdk_nvmf_discovery_log_page *disc_log;
|
||||
@ -87,8 +86,6 @@ nvmf_update_discovery_log(struct spdk_nvmf_tgt *tgt)
|
||||
break;
|
||||
}
|
||||
|
||||
listen_addr = listener->listen_addr;
|
||||
|
||||
disc_log = new_log_page;
|
||||
cur_size = new_size;
|
||||
|
||||
@ -100,10 +97,10 @@ nvmf_update_discovery_log(struct spdk_nvmf_tgt *tgt)
|
||||
entry->subtype = subsystem->subtype;
|
||||
snprintf(entry->subnqn, sizeof(entry->subnqn), "%s", subsystem->subnqn);
|
||||
|
||||
transport = spdk_nvmf_tgt_get_transport(tgt, listen_addr->trid.trtype);
|
||||
transport = spdk_nvmf_tgt_get_transport(tgt, listener->trid.trtype);
|
||||
assert(transport != NULL);
|
||||
|
||||
spdk_nvmf_transport_listen_addr_discover(transport, listen_addr, entry);
|
||||
spdk_nvmf_transport_listener_discover(transport, &listener->trid, entry);
|
||||
|
||||
numrec++;
|
||||
}
|
||||
|
@ -81,7 +81,6 @@ spdk_nvmf_tgt_create(struct spdk_nvmf_tgt_opts *opts)
|
||||
tgt->discovery_log_page_size = 0;
|
||||
tgt->current_subsystem_id = 0;
|
||||
TAILQ_INIT(&tgt->subsystems);
|
||||
TAILQ_INIT(&tgt->listen_addrs);
|
||||
TAILQ_INIT(&tgt->transports);
|
||||
|
||||
SPDK_DEBUGLOG(SPDK_TRACE_NVMF, "Max Queue Pairs Per Controller: %d\n",
|
||||
@ -97,63 +96,41 @@ spdk_nvmf_tgt_create(struct spdk_nvmf_tgt_opts *opts)
|
||||
void
|
||||
spdk_nvmf_tgt_destroy(struct spdk_nvmf_tgt *tgt)
|
||||
{
|
||||
struct spdk_nvmf_listen_addr *listen_addr, *listen_addr_tmp;
|
||||
struct spdk_nvmf_transport *transport, *transport_tmp;
|
||||
|
||||
TAILQ_FOREACH_SAFE(listen_addr, &tgt->listen_addrs, link, listen_addr_tmp) {
|
||||
TAILQ_REMOVE(&tgt->listen_addrs, listen_addr, link);
|
||||
tgt->discovery_genctr++;
|
||||
|
||||
spdk_nvmf_listen_addr_destroy(listen_addr);
|
||||
}
|
||||
|
||||
TAILQ_FOREACH_SAFE(transport, &tgt->transports, link, transport_tmp) {
|
||||
TAILQ_REMOVE(&tgt->transports, transport, link);
|
||||
spdk_nvmf_transport_destroy(transport);
|
||||
}
|
||||
}
|
||||
|
||||
struct spdk_nvmf_listen_addr *
|
||||
int
|
||||
spdk_nvmf_tgt_listen(struct spdk_nvmf_tgt *tgt,
|
||||
struct spdk_nvme_transport_id *trid)
|
||||
{
|
||||
struct spdk_nvmf_listen_addr *listen_addr;
|
||||
struct spdk_nvmf_transport *transport;
|
||||
int rc;
|
||||
|
||||
TAILQ_FOREACH(listen_addr, &tgt->listen_addrs, link) {
|
||||
if (spdk_nvme_transport_id_compare(&listen_addr->trid, trid) == 0) {
|
||||
return listen_addr;
|
||||
}
|
||||
}
|
||||
|
||||
transport = spdk_nvmf_tgt_get_transport(tgt, trid->trtype);
|
||||
if (!transport) {
|
||||
transport = spdk_nvmf_transport_create(tgt, trid->trtype);
|
||||
if (!transport) {
|
||||
SPDK_ERRLOG("Transport initialization failed\n");
|
||||
return NULL;
|
||||
return -EINVAL;
|
||||
}
|
||||
TAILQ_INSERT_TAIL(&tgt->transports, transport, link);
|
||||
}
|
||||
|
||||
|
||||
listen_addr = spdk_nvmf_listen_addr_create(trid);
|
||||
if (!listen_addr) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
rc = spdk_nvmf_transport_listen(transport, trid);
|
||||
if (rc < 0) {
|
||||
free(listen_addr);
|
||||
SPDK_ERRLOG("Unable to listen on address '%s'\n", trid->traddr);
|
||||
return NULL;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
TAILQ_INSERT_HEAD(&tgt->listen_addrs, listen_addr, link);
|
||||
tgt->discovery_genctr++;
|
||||
|
||||
return listen_addr;
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct spdk_nvmf_subsystem *
|
||||
@ -232,36 +209,6 @@ spdk_nvmf_tgt_get_transport(struct spdk_nvmf_tgt *tgt, enum spdk_nvme_transport_
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct spdk_nvmf_listen_addr *
|
||||
spdk_nvmf_listen_addr_create(struct spdk_nvme_transport_id *trid)
|
||||
{
|
||||
struct spdk_nvmf_listen_addr *listen_addr;
|
||||
|
||||
listen_addr = calloc(1, sizeof(*listen_addr));
|
||||
if (!listen_addr) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
listen_addr->trid = *trid;
|
||||
|
||||
return listen_addr;
|
||||
}
|
||||
|
||||
void
|
||||
spdk_nvmf_listen_addr_destroy(struct spdk_nvmf_listen_addr *addr)
|
||||
{
|
||||
struct spdk_nvmf_transport *transport;
|
||||
|
||||
transport = spdk_nvmf_tgt_get_transport(&g_nvmf_tgt, addr->trid.trtype);
|
||||
if (!transport) {
|
||||
SPDK_ERRLOG("Attempted to destroy listener without a valid transport\n");
|
||||
return;
|
||||
}
|
||||
|
||||
spdk_nvmf_transport_stop_listen(transport, &addr->trid);
|
||||
free(addr);
|
||||
}
|
||||
|
||||
void
|
||||
spdk_nvmf_tgt_accept(struct spdk_nvmf_tgt *tgt)
|
||||
{
|
||||
|
@ -53,7 +53,6 @@ struct spdk_nvmf_tgt {
|
||||
TAILQ_HEAD(, spdk_nvmf_subsystem) subsystems;
|
||||
struct spdk_nvmf_discovery_log_page *discovery_log_page;
|
||||
size_t discovery_log_page_size;
|
||||
TAILQ_HEAD(, spdk_nvmf_listen_addr) listen_addrs;
|
||||
uint32_t current_subsystem_id;
|
||||
TAILQ_HEAD(, spdk_nvmf_transport) transports;
|
||||
};
|
||||
@ -64,7 +63,7 @@ struct spdk_nvmf_host {
|
||||
};
|
||||
|
||||
struct spdk_nvmf_listener {
|
||||
struct spdk_nvmf_listen_addr *listen_addr;
|
||||
struct spdk_nvme_transport_id trid;
|
||||
TAILQ_ENTRY(spdk_nvmf_listener) link;
|
||||
};
|
||||
|
||||
@ -111,9 +110,6 @@ struct spdk_nvmf_subsystem {
|
||||
|
||||
extern struct spdk_nvmf_tgt g_nvmf_tgt;
|
||||
|
||||
struct spdk_nvmf_listen_addr *spdk_nvmf_listen_addr_create(struct spdk_nvme_transport_id *trid);
|
||||
void spdk_nvmf_listen_addr_destroy(struct spdk_nvmf_listen_addr *addr);
|
||||
|
||||
uint16_t spdk_nvmf_tgt_gen_cntlid(struct spdk_nvmf_tgt *tgt);
|
||||
|
||||
struct spdk_nvmf_transport *spdk_nvmf_tgt_get_transport(struct spdk_nvmf_tgt *tgt,
|
||||
|
@ -1176,11 +1176,17 @@ static int
|
||||
spdk_nvmf_rdma_destroy(struct spdk_nvmf_transport *transport)
|
||||
{
|
||||
struct spdk_nvmf_rdma_transport *rtransport;
|
||||
struct spdk_nvmf_rdma_port *port, *port_tmp;
|
||||
struct spdk_nvmf_rdma_device *device, *device_tmp;
|
||||
|
||||
rtransport = SPDK_CONTAINEROF(transport, struct spdk_nvmf_rdma_transport, transport);
|
||||
|
||||
assert(TAILQ_EMPTY(&rtransport->ports));
|
||||
TAILQ_FOREACH_SAFE(port, &rtransport->ports, link, port_tmp) {
|
||||
TAILQ_REMOVE(&rtransport->ports, port, link);
|
||||
rdma_destroy_id(port->id);
|
||||
free(port);
|
||||
}
|
||||
|
||||
if (rtransport->event_channel != NULL) {
|
||||
rdma_destroy_event_channel(rtransport->event_channel);
|
||||
}
|
||||
@ -1414,15 +1420,15 @@ spdk_nvmf_rdma_accept(struct spdk_nvmf_transport *transport)
|
||||
|
||||
static void
|
||||
spdk_nvmf_rdma_discover(struct spdk_nvmf_transport *transport,
|
||||
struct spdk_nvmf_listen_addr *port,
|
||||
struct spdk_nvme_transport_id *trid,
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry)
|
||||
{
|
||||
entry->trtype = SPDK_NVMF_TRTYPE_RDMA;
|
||||
entry->adrfam = port->trid.adrfam;
|
||||
entry->adrfam = trid->adrfam;
|
||||
entry->treq.secure_channel = SPDK_NVMF_TREQ_SECURE_CHANNEL_NOT_SPECIFIED;
|
||||
|
||||
spdk_strcpy_pad(entry->trsvcid, port->trid.trsvcid, sizeof(entry->trsvcid), ' ');
|
||||
spdk_strcpy_pad(entry->traddr, port->trid.traddr, sizeof(entry->traddr), ' ');
|
||||
spdk_strcpy_pad(entry->trsvcid, trid->trsvcid, sizeof(entry->trsvcid), ' ');
|
||||
spdk_strcpy_pad(entry->traddr, trid->traddr, sizeof(entry->traddr), ' ');
|
||||
|
||||
entry->tsas.rdma.rdma_qptype = SPDK_NVMF_RDMA_QPTYPE_RELIABLE_CONNECTED;
|
||||
entry->tsas.rdma.rdma_prtype = SPDK_NVMF_RDMA_PRTYPE_NONE;
|
||||
@ -1703,7 +1709,7 @@ const struct spdk_nvmf_transport_ops spdk_nvmf_transport_rdma = {
|
||||
.stop_listen = spdk_nvmf_rdma_stop_listen,
|
||||
.accept = spdk_nvmf_rdma_accept,
|
||||
|
||||
.listen_addr_discover = spdk_nvmf_rdma_discover,
|
||||
.listener_discover = spdk_nvmf_rdma_discover,
|
||||
|
||||
.poll_group_create = spdk_nvmf_rdma_poll_group_create,
|
||||
.poll_group_destroy = spdk_nvmf_rdma_poll_group_destroy,
|
||||
|
@ -277,7 +277,7 @@ spdk_nvmf_host_get_nqn(struct spdk_nvmf_host *host)
|
||||
|
||||
int
|
||||
spdk_nvmf_subsystem_add_listener(struct spdk_nvmf_subsystem *subsystem,
|
||||
struct spdk_nvmf_listen_addr *listen_addr)
|
||||
struct spdk_nvme_transport_id *trid)
|
||||
{
|
||||
struct spdk_nvmf_listener *listener;
|
||||
|
||||
@ -286,7 +286,7 @@ spdk_nvmf_subsystem_add_listener(struct spdk_nvmf_subsystem *subsystem,
|
||||
return -1;
|
||||
}
|
||||
|
||||
listener->listen_addr = listen_addr;
|
||||
listener->trid = *trid;
|
||||
|
||||
TAILQ_INSERT_HEAD(&subsystem->listeners, listener, link);
|
||||
|
||||
@ -298,7 +298,7 @@ spdk_nvmf_subsystem_add_listener(struct spdk_nvmf_subsystem *subsystem,
|
||||
*/
|
||||
bool
|
||||
spdk_nvmf_subsystem_listener_allowed(struct spdk_nvmf_subsystem *subsystem,
|
||||
struct spdk_nvmf_listen_addr *listen_addr)
|
||||
struct spdk_nvme_transport_id *trid)
|
||||
{
|
||||
struct spdk_nvmf_listener *listener;
|
||||
|
||||
@ -307,7 +307,7 @@ spdk_nvmf_subsystem_listener_allowed(struct spdk_nvmf_subsystem *subsystem,
|
||||
}
|
||||
|
||||
TAILQ_FOREACH(listener, &subsystem->listeners, link) {
|
||||
if (listener->listen_addr == listen_addr) {
|
||||
if (spdk_nvme_transport_id_compare(&listener->trid, trid) == 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -332,7 +332,7 @@ spdk_nvmf_subsystem_get_next_listener(struct spdk_nvmf_subsystem *subsystem,
|
||||
const struct spdk_nvme_transport_id *
|
||||
spdk_nvmf_listener_get_trid(struct spdk_nvmf_listener *listener)
|
||||
{
|
||||
return &listener->listen_addr->trid;
|
||||
return &listener->trid;
|
||||
}
|
||||
|
||||
static void spdk_nvmf_ctrlr_hot_remove(void *remove_ctx)
|
||||
|
@ -113,11 +113,11 @@ spdk_nvmf_transport_accept(struct spdk_nvmf_transport *transport)
|
||||
}
|
||||
|
||||
void
|
||||
spdk_nvmf_transport_listen_addr_discover(struct spdk_nvmf_transport *transport,
|
||||
struct spdk_nvmf_listen_addr *listen_addr,
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry)
|
||||
spdk_nvmf_transport_listener_discover(struct spdk_nvmf_transport *transport,
|
||||
struct spdk_nvme_transport_id *trid,
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry)
|
||||
{
|
||||
transport->ops->listen_addr_discover(transport, listen_addr, entry);
|
||||
transport->ops->listener_discover(transport, trid, entry);
|
||||
}
|
||||
|
||||
struct spdk_nvmf_poll_group *
|
||||
|
@ -39,8 +39,6 @@
|
||||
#include "spdk/nvme.h"
|
||||
#include "spdk/nvmf.h"
|
||||
|
||||
struct spdk_nvmf_listen_addr;
|
||||
|
||||
struct spdk_nvmf_transport {
|
||||
struct spdk_nvmf_tgt *tgt;
|
||||
const struct spdk_nvmf_transport_ops *ops;
|
||||
@ -85,9 +83,9 @@ struct spdk_nvmf_transport_ops {
|
||||
/**
|
||||
* Fill out a discovery log entry for a specific listen address.
|
||||
*/
|
||||
void (*listen_addr_discover)(struct spdk_nvmf_transport *transport,
|
||||
struct spdk_nvmf_listen_addr *listen_addr,
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry);
|
||||
void (*listener_discover)(struct spdk_nvmf_transport *transport,
|
||||
struct spdk_nvme_transport_id *trid,
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry);
|
||||
|
||||
/**
|
||||
* Create a new poll group
|
||||
@ -145,8 +143,8 @@ int spdk_nvmf_transport_stop_listen(struct spdk_nvmf_transport *transport,
|
||||
|
||||
void spdk_nvmf_transport_accept(struct spdk_nvmf_transport *transport);
|
||||
|
||||
void spdk_nvmf_transport_listen_addr_discover(struct spdk_nvmf_transport *transport,
|
||||
struct spdk_nvmf_listen_addr *listen_addr,
|
||||
void spdk_nvmf_transport_listener_discover(struct spdk_nvmf_transport *transport,
|
||||
struct spdk_nvme_transport_id *trid,
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry);
|
||||
|
||||
struct spdk_nvmf_poll_group *spdk_nvmf_transport_poll_group_create(struct spdk_nvmf_transport
|
||||
|
@ -43,27 +43,6 @@ struct spdk_nvmf_tgt g_nvmf_tgt = {
|
||||
.subsystems = TAILQ_HEAD_INITIALIZER(g_nvmf_tgt.subsystems)
|
||||
};
|
||||
|
||||
struct spdk_nvmf_listen_addr *
|
||||
spdk_nvmf_listen_addr_create(struct spdk_nvme_transport_id *trid)
|
||||
{
|
||||
struct spdk_nvmf_listen_addr *listen_addr;
|
||||
|
||||
listen_addr = calloc(1, sizeof(*listen_addr));
|
||||
if (!listen_addr) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
listen_addr->trid = *trid;
|
||||
|
||||
return listen_addr;
|
||||
}
|
||||
|
||||
void
|
||||
spdk_nvmf_listen_addr_destroy(struct spdk_nvmf_listen_addr *addr)
|
||||
{
|
||||
free(addr);
|
||||
}
|
||||
|
||||
int
|
||||
spdk_bdev_open(struct spdk_bdev *bdev, bool write, spdk_bdev_remove_cb_t remove_cb,
|
||||
void *remove_ctx, struct spdk_bdev_desc **desc)
|
||||
@ -85,9 +64,9 @@ spdk_nvmf_transport_listen(struct spdk_nvmf_transport *transport,
|
||||
}
|
||||
|
||||
void
|
||||
spdk_nvmf_transport_listen_addr_discover(struct spdk_nvmf_transport *transport,
|
||||
struct spdk_nvmf_listen_addr *listen_addr,
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry)
|
||||
spdk_nvmf_transport_listener_discover(struct spdk_nvmf_transport *transport,
|
||||
struct spdk_nvme_transport_id *trid,
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry)
|
||||
{
|
||||
entry->trtype = 42;
|
||||
}
|
||||
@ -186,7 +165,7 @@ test_discovery_log(void)
|
||||
uint8_t buffer[8192];
|
||||
struct spdk_nvmf_discovery_log_page *disc_log;
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry;
|
||||
struct spdk_nvmf_listen_addr listen_addr = {};
|
||||
struct spdk_nvme_transport_id trid = {};
|
||||
|
||||
/* Reset discovery-related globals */
|
||||
g_nvmf_tgt.discovery_genctr = 0;
|
||||
@ -200,11 +179,11 @@ test_discovery_log(void)
|
||||
NULL, NULL, NULL);
|
||||
SPDK_CU_ASSERT_FATAL(subsystem != NULL);
|
||||
|
||||
listen_addr.trid.trtype = SPDK_NVME_TRANSPORT_RDMA;
|
||||
listen_addr.trid.adrfam = SPDK_NVMF_ADRFAM_IPV4;
|
||||
snprintf(listen_addr.trid.traddr, sizeof(listen_addr.trid.traddr), "1234");
|
||||
snprintf(listen_addr.trid.trsvcid, sizeof(listen_addr.trid.trsvcid), "5678");
|
||||
SPDK_CU_ASSERT_FATAL(spdk_nvmf_subsystem_add_listener(subsystem, &listen_addr) == 0);
|
||||
trid.trtype = SPDK_NVME_TRANSPORT_RDMA;
|
||||
trid.adrfam = SPDK_NVMF_ADRFAM_IPV4;
|
||||
snprintf(trid.traddr, sizeof(trid.traddr), "1234");
|
||||
snprintf(trid.trsvcid, sizeof(trid.trsvcid), "5678");
|
||||
SPDK_CU_ASSERT_FATAL(spdk_nvmf_subsystem_add_listener(subsystem, &trid) == 0);
|
||||
|
||||
/* Get only genctr (first field in the header) */
|
||||
memset(buffer, 0xCC, sizeof(buffer));
|
||||
|
@ -53,27 +53,6 @@ spdk_nvmf_subsystem_bdev_detach(struct spdk_nvmf_subsystem *subsystem)
|
||||
{
|
||||
}
|
||||
|
||||
struct spdk_nvmf_listen_addr *
|
||||
spdk_nvmf_listen_addr_create(struct spdk_nvme_transport_id *trid)
|
||||
{
|
||||
struct spdk_nvmf_listen_addr *listen_addr;
|
||||
|
||||
listen_addr = calloc(1, sizeof(*listen_addr));
|
||||
if (!listen_addr) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
listen_addr->trid = *trid;
|
||||
|
||||
return listen_addr;
|
||||
}
|
||||
|
||||
void
|
||||
spdk_nvmf_listen_addr_destroy(struct spdk_nvmf_listen_addr *addr)
|
||||
{
|
||||
free(addr);
|
||||
}
|
||||
|
||||
int
|
||||
spdk_nvmf_transport_listen(struct spdk_nvmf_transport *transport,
|
||||
const struct spdk_nvme_transport_id *trid)
|
||||
@ -82,9 +61,9 @@ spdk_nvmf_transport_listen(struct spdk_nvmf_transport *transport,
|
||||
}
|
||||
|
||||
void
|
||||
spdk_nvmf_transport_listen_addr_discover(struct spdk_nvmf_transport *transport,
|
||||
struct spdk_nvmf_listen_addr *listen_addr,
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry)
|
||||
spdk_nvmf_transport_listener_discover(struct spdk_nvmf_transport *transport,
|
||||
struct spdk_nvme_transport_id *trid,
|
||||
struct spdk_nvmf_discovery_log_page_entry *entry)
|
||||
{
|
||||
entry->trtype = 42;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user