Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40d86609 authored by Andy Grover's avatar Andy Grover Committed by David S. Miller
Browse files

RDS: Modularize RDMA and TCP transports



Enable the building of transports as modules.

Also, improve consistency of Kconfig messages in relation to other
protocols, and move build dependency on IB from the RDS core code
to the rds_rdma module.

Signed-off-by: default avatarAndy Grover <andy.grover@oracle.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 616b757a
Loading
Loading
Loading
Loading
+20 −6
Original line number Diff line number Diff line

config RDS
	tristate "Reliable Datagram Sockets (RDS) (EXPERIMENTAL)"
	depends on INET && INFINIBAND_IPOIB && EXPERIMENTAL
	depends on INFINIBAND && INFINIBAND_ADDR_TRANS
	tristate "The RDS Protocol (EXPERIMENTAL)"
	depends on INET && EXPERIMENTAL
	---help---
	  RDS provides reliable, sequenced delivery of datagrams
	  over Infiniband.
	  The RDS (Reliable Datagram Sockets) protocol provides reliable,
	  sequenced delivery of datagrams over Infiniband, iWARP,
	  or TCP.

config RDS_RDMA
	tristate "RDS over Infiniband and iWARP"
	depends on RDS && INFINIBAND && INFINIBAND_ADDR_TRANS
	---help---
	  Allow RDS to use Infiniband and iWARP as a transport.
	  This transport supports RDMA operations.

config RDS_TCP
	tristate "RDS over TCP"
	depends on RDS
	---help---
	  Allow RDS to use TCP as a transport.
	  This transport does not support RDMA operations.

config RDS_DEBUG
        bool "Debugging messages"
        bool "RDS debugging messages"
	depends on RDS
        default n
+9 −2
Original line number Diff line number Diff line
obj-$(CONFIG_RDS) += rds.o
rds-y :=	af_rds.o bind.o cong.o connection.o info.o message.o   \
			recv.o send.o stats.o sysctl.o threads.o transport.o \
			loop.o page.o rdma.o \
			rdma_transport.o \
			loop.o page.o rdma.o

obj-$(CONFIG_RDS_RDMA) += rds_rdma.o
rds_rdma-objs :=	rdma_transport.o \
			ib.o ib_cm.o ib_recv.o ib_ring.o ib_send.o ib_stats.o \
			ib_sysctl.o ib_rdma.o \
			iw.o iw_cm.o iw_recv.o iw_ring.o iw_send.o iw_stats.o \
			iw_sysctl.o iw_rdma.o


obj-$(CONFIG_RDS_TCP) += rds_tcp.o
rds_tcp-objs :=		tcp.o tcp_connect.o tcp_listen.o tcp_recv.o \
			tcp_send.o tcp_stats.o

ifeq ($(CONFIG_RDS_DEBUG), y)
EXTRA_CFLAGS += -DDEBUG
endif
+0 −8
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@

#include "rds.h"
#include "rdma.h"
#include "rdma_transport.h"

/* this is just used for stats gathering :/ */
static DEFINE_SPINLOCK(rds_sock_lock);
@@ -509,7 +508,6 @@ out:

static void __exit rds_exit(void)
{
	rds_rdma_exit();
	sock_unregister(rds_family_ops.family);
	proto_unregister(&rds_proto);
	rds_conn_exit();
@@ -549,14 +547,8 @@ static int __init rds_init(void)
	rds_info_register_func(RDS_INFO_SOCKETS, rds_sock_info);
	rds_info_register_func(RDS_INFO_RECV_MESSAGES, rds_sock_inc_info);

	/* ib/iwarp transports currently compiled-in */
	ret = rds_rdma_init();
	if (ret)
		goto out_sock;
	goto out;

out_sock:
	sock_unregister(rds_family_ops.family);
out_proto:
	proto_unregister(&rds_proto);
out_stats:
+6 −0
Original line number Diff line number Diff line
@@ -203,6 +203,7 @@ err_iw_init:
out:
	return ret;
}
module_init(rds_rdma_init);

void rds_rdma_exit(void)
{
@@ -211,4 +212,9 @@ void rds_rdma_exit(void)
	rds_ib_exit();
	rds_iw_exit();
}
module_exit(rds_rdma_exit);

MODULE_AUTHOR("Oracle Corporation <rds-devel@oss.oracle.com>");
MODULE_DESCRIPTION("RDS: IB/iWARP transport");
MODULE_LICENSE("Dual BSD/GPL");