diff options
Diffstat (limited to 'net/rds')
-rw-r--r-- | net/rds/Kconfig | 26 | ||||
-rw-r--r-- | net/rds/Makefile | 11 | ||||
-rw-r--r-- | net/rds/af_rds.c | 8 | ||||
-rw-r--r-- | net/rds/rdma_transport.c | 6 |
4 files changed, 35 insertions, 16 deletions
diff --git a/net/rds/Kconfig b/net/rds/Kconfig index 796773b5df9b..ec753b3ae72a 100644 --- a/net/rds/Kconfig +++ b/net/rds/Kconfig | |||
@@ -1,14 +1,28 @@ | |||
1 | 1 | ||
2 | config RDS | 2 | config RDS |
3 | tristate "Reliable Datagram Sockets (RDS) (EXPERIMENTAL)" | 3 | tristate "The RDS Protocol (EXPERIMENTAL)" |
4 | depends on INET && INFINIBAND_IPOIB && EXPERIMENTAL | 4 | depends on INET && EXPERIMENTAL |
5 | depends on INFINIBAND && INFINIBAND_ADDR_TRANS | ||
6 | ---help--- | 5 | ---help--- |
7 | RDS provides reliable, sequenced delivery of datagrams | 6 | The RDS (Reliable Datagram Sockets) protocol provides reliable, |
8 | over Infiniband. | 7 | sequenced delivery of datagrams over Infiniband, iWARP, |
8 | or TCP. | ||
9 | |||
10 | config RDS_RDMA | ||
11 | tristate "RDS over Infiniband and iWARP" | ||
12 | depends on RDS && INFINIBAND && INFINIBAND_ADDR_TRANS | ||
13 | ---help--- | ||
14 | Allow RDS to use Infiniband and iWARP as a transport. | ||
15 | This transport supports RDMA operations. | ||
16 | |||
17 | config RDS_TCP | ||
18 | tristate "RDS over TCP" | ||
19 | depends on RDS | ||
20 | ---help--- | ||
21 | Allow RDS to use TCP as a transport. | ||
22 | This transport does not support RDMA operations. | ||
9 | 23 | ||
10 | config RDS_DEBUG | 24 | config RDS_DEBUG |
11 | bool "Debugging messages" | 25 | bool "RDS debugging messages" |
12 | depends on RDS | 26 | depends on RDS |
13 | default n | 27 | default n |
14 | 28 | ||
diff --git a/net/rds/Makefile b/net/rds/Makefile index 51f27585fa08..b46eca109688 100644 --- a/net/rds/Makefile +++ b/net/rds/Makefile | |||
@@ -1,13 +1,20 @@ | |||
1 | obj-$(CONFIG_RDS) += rds.o | 1 | obj-$(CONFIG_RDS) += rds.o |
2 | rds-y := af_rds.o bind.o cong.o connection.o info.o message.o \ | 2 | rds-y := af_rds.o bind.o cong.o connection.o info.o message.o \ |
3 | recv.o send.o stats.o sysctl.o threads.o transport.o \ | 3 | recv.o send.o stats.o sysctl.o threads.o transport.o \ |
4 | loop.o page.o rdma.o \ | 4 | loop.o page.o rdma.o |
5 | rdma_transport.o \ | 5 | |
6 | obj-$(CONFIG_RDS_RDMA) += rds_rdma.o | ||
7 | rds_rdma-objs := rdma_transport.o \ | ||
6 | ib.o ib_cm.o ib_recv.o ib_ring.o ib_send.o ib_stats.o \ | 8 | ib.o ib_cm.o ib_recv.o ib_ring.o ib_send.o ib_stats.o \ |
7 | ib_sysctl.o ib_rdma.o \ | 9 | ib_sysctl.o ib_rdma.o \ |
8 | iw.o iw_cm.o iw_recv.o iw_ring.o iw_send.o iw_stats.o \ | 10 | iw.o iw_cm.o iw_recv.o iw_ring.o iw_send.o iw_stats.o \ |
9 | iw_sysctl.o iw_rdma.o | 11 | iw_sysctl.o iw_rdma.o |
10 | 12 | ||
13 | |||
14 | obj-$(CONFIG_RDS_TCP) += rds_tcp.o | ||
15 | rds_tcp-objs := tcp.o tcp_connect.o tcp_listen.o tcp_recv.o \ | ||
16 | tcp_send.o tcp_stats.o | ||
17 | |||
11 | ifeq ($(CONFIG_RDS_DEBUG), y) | 18 | ifeq ($(CONFIG_RDS_DEBUG), y) |
12 | EXTRA_CFLAGS += -DDEBUG | 19 | EXTRA_CFLAGS += -DDEBUG |
13 | endif | 20 | endif |
diff --git a/net/rds/af_rds.c b/net/rds/af_rds.c index b11e7e527864..108ed2e671c5 100644 --- a/net/rds/af_rds.c +++ b/net/rds/af_rds.c | |||
@@ -39,7 +39,6 @@ | |||
39 | 39 | ||
40 | #include "rds.h" | 40 | #include "rds.h" |
41 | #include "rdma.h" | 41 | #include "rdma.h" |
42 | #include "rdma_transport.h" | ||
43 | 42 | ||
44 | /* this is just used for stats gathering :/ */ | 43 | /* this is just used for stats gathering :/ */ |
45 | static DEFINE_SPINLOCK(rds_sock_lock); | 44 | static DEFINE_SPINLOCK(rds_sock_lock); |
@@ -509,7 +508,6 @@ out: | |||
509 | 508 | ||
510 | static void __exit rds_exit(void) | 509 | static void __exit rds_exit(void) |
511 | { | 510 | { |
512 | rds_rdma_exit(); | ||
513 | sock_unregister(rds_family_ops.family); | 511 | sock_unregister(rds_family_ops.family); |
514 | proto_unregister(&rds_proto); | 512 | proto_unregister(&rds_proto); |
515 | rds_conn_exit(); | 513 | rds_conn_exit(); |
@@ -549,14 +547,8 @@ static int __init rds_init(void) | |||
549 | rds_info_register_func(RDS_INFO_SOCKETS, rds_sock_info); | 547 | rds_info_register_func(RDS_INFO_SOCKETS, rds_sock_info); |
550 | rds_info_register_func(RDS_INFO_RECV_MESSAGES, rds_sock_inc_info); | 548 | rds_info_register_func(RDS_INFO_RECV_MESSAGES, rds_sock_inc_info); |
551 | 549 | ||
552 | /* ib/iwarp transports currently compiled-in */ | ||
553 | ret = rds_rdma_init(); | ||
554 | if (ret) | ||
555 | goto out_sock; | ||
556 | goto out; | 550 | goto out; |
557 | 551 | ||
558 | out_sock: | ||
559 | sock_unregister(rds_family_ops.family); | ||
560 | out_proto: | 552 | out_proto: |
561 | proto_unregister(&rds_proto); | 553 | proto_unregister(&rds_proto); |
562 | out_stats: | 554 | out_stats: |
diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c index 7a6c748cb56c..9ece910ea394 100644 --- a/net/rds/rdma_transport.c +++ b/net/rds/rdma_transport.c | |||
@@ -203,6 +203,7 @@ err_iw_init: | |||
203 | out: | 203 | out: |
204 | return ret; | 204 | return ret; |
205 | } | 205 | } |
206 | module_init(rds_rdma_init); | ||
206 | 207 | ||
207 | void rds_rdma_exit(void) | 208 | void rds_rdma_exit(void) |
208 | { | 209 | { |
@@ -211,4 +212,9 @@ void rds_rdma_exit(void) | |||
211 | rds_ib_exit(); | 212 | rds_ib_exit(); |
212 | rds_iw_exit(); | 213 | rds_iw_exit(); |
213 | } | 214 | } |
215 | module_exit(rds_rdma_exit); | ||
216 | |||
217 | MODULE_AUTHOR("Oracle Corporation <rds-devel@oss.oracle.com>"); | ||
218 | MODULE_DESCRIPTION("RDS: IB/iWARP transport"); | ||
219 | MODULE_LICENSE("Dual BSD/GPL"); | ||
214 | 220 | ||