diff --git a/lib/nvmf/Makefile b/lib/nvmf/Makefile index 4a2905e03..98c31c713 100644 --- a/lib/nvmf/Makefile +++ b/lib/nvmf/Makefile @@ -35,8 +35,7 @@ SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..) CFLAGS += $(DPDK_INC) LIBNAME = nvmf -C_SRCS = conn.c controller.c \ - subsystem.c conf.c \ +C_SRCS = controller.c subsystem.c conf.c \ nvmf.c request.c session.c transport.c C_SRCS-$(CONFIG_RDMA) += rdma.c diff --git a/lib/nvmf/conn.c b/lib/nvmf/conn.c deleted file mode 100644 index dcc1a0f1e..000000000 --- a/lib/nvmf/conn.c +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * BSD LICENSE - * - * Copyright (c) Intel Corporation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Intel Corporation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include "spdk/nvmf_spec.h" -#include "conn.h" -#include "request.h" -#include "session.h" -#include "subsystem.h" -#include "transport.h" -#include "spdk/queue.h" -#include "spdk/log.h" -#include "spdk/trace.h" - - -/** \file - -*/ - -void -spdk_nvmf_conn_destruct(struct spdk_nvmf_conn *conn) -{ - nvmf_disconnect(conn->sess, conn); - conn->transport->conn_fini(conn); -} diff --git a/lib/nvmf/conn.h b/lib/nvmf/conn.h deleted file mode 100644 index 24f19b6a4..000000000 --- a/lib/nvmf/conn.h +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * BSD LICENSE - * - * Copyright (c) Intel Corporation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Intel Corporation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef NVMF_CONN_H -#define NVMF_CONN_H - -#include - -#include "spdk/event.h" -#include "nvmf_internal.h" -#include "spdk/queue.h" - -struct spdk_nvmf_transport; - -enum conn_type { - CONN_TYPE_AQ = 0, - CONN_TYPE_IOQ = 1, -}; - -struct spdk_nvmf_conn { - const struct spdk_nvmf_transport *transport; - struct nvmf_session *sess; - enum conn_type type; - - uint16_t sq_head; - - TAILQ_ENTRY(spdk_nvmf_conn) link; -}; - -int spdk_nvmf_startup_conn(struct spdk_nvmf_conn *conn); -void spdk_nvmf_conn_destruct(struct spdk_nvmf_conn *conn); - -#endif /* NVMF_CONN_H */ diff --git a/lib/nvmf/nvmf.c b/lib/nvmf/nvmf.c index 3d62d409b..f3cf52258 100644 --- a/lib/nvmf/nvmf.c +++ b/lib/nvmf/nvmf.c @@ -39,7 +39,6 @@ #include "spdk/log.h" #include "spdk/conf.h" #include "conf.h" -#include "conn.h" #include "controller.h" #include "subsystem.h" #include "transport.h" diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index 08009fff1..254301c4c 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -46,7 +46,7 @@ #include #include -#include "conn.h" +#include "nvmf_internal.h" #include "request.h" #include "session.h" #include "subsystem.h" diff --git a/lib/nvmf/request.c b/lib/nvmf/request.c index b7d8248aa..5aaaf8e02 100644 --- a/lib/nvmf/request.c +++ b/lib/nvmf/request.c @@ -34,7 +34,7 @@ #include #include -#include "conn.h" +#include "nvmf_internal.h" #include "request.h" #include "session.h" #include "subsystem.h" diff --git a/lib/nvmf/session.c b/lib/nvmf/session.c index be1b7ab7f..f700743e6 100644 --- a/lib/nvmf/session.c +++ b/lib/nvmf/session.c @@ -165,7 +165,8 @@ spdk_nvmf_session_destruct(struct nvmf_session *session) struct spdk_nvmf_conn *conn = TAILQ_FIRST(&session->connections); TAILQ_REMOVE(&session->connections, conn, link); - spdk_nvmf_conn_destruct(conn); + nvmf_disconnect(conn->sess, conn); + conn->transport->conn_fini(conn); } free(session); diff --git a/lib/nvmf/session.h b/lib/nvmf/session.h index 1acd27dc1..9a163445e 100644 --- a/lib/nvmf/session.h +++ b/lib/nvmf/session.h @@ -37,7 +37,6 @@ #include #include -#include "conn.h" #include "request.h" #include "spdk/nvmf_spec.h" #include "spdk/queue.h" @@ -45,6 +44,23 @@ /* define a virtual controller limit to the number of QPs supported */ #define MAX_SESSION_IO_QUEUES 64 +struct spdk_nvmf_transport; + +enum conn_type { + CONN_TYPE_AQ = 0, + CONN_TYPE_IOQ = 1, +}; + +struct spdk_nvmf_conn { + const struct spdk_nvmf_transport *transport; + struct nvmf_session *sess; + enum conn_type type; + + uint16_t sq_head; + + TAILQ_ENTRY(spdk_nvmf_conn) link; +}; + /* * This structure maintains the NVMf virtual controller session * state. Each NVMf session permits some number of connections.