1
0
Fork 0
alistair23-linux/net/rds
Ka-Cheong Poon 1e2b44e78e rds: Enable RDS IPv6 support
This patch enables RDS to use IPv6 addresses. For RDS/TCP, the
listener is now an IPv6 endpoint which accepts both IPv4 and IPv6
connection requests.  RDS/RDMA/IB uses a private data (struct
rds_ib_connect_private) exchange between endpoints at RDS connection
establishment time to support RDMA. This private data exchange uses a
32 bit integer to represent an IP address. This needs to be changed in
order to support IPv6. A new private data struct
rds6_ib_connect_private is introduced to handle this. To ensure
backward compatibility, an IPv6 capable RDS stack uses another RDMA
listener port (RDS_CM_PORT) to accept IPv6 connection. And it
continues to use the original RDS_PORT for IPv4 RDS connections. When
it needs to communicate with an IPv6 peer, it uses the RDS_CM_PORT to
send the connection set up request.

v5: Fixed syntax problem (David Miller).

v4: Changed port history comments in rds.h (Sowmini Varadhan).

v3: Added support to set up IPv4 connection using mapped address
    (David Miller).
    Added support to set up connection between link local and non-link
    addresses.
    Various review comments from Santosh Shilimkar and Sowmini Varadhan.

v2: Fixed bound and peer address scope mismatched issue.
    Added back rds_connect() IPv6 changes.

Signed-off-by: Ka-Cheong Poon <ka-cheong.poon@oracle.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-07-23 21:17:44 -07:00
..
Kconfig IB: Revert "remove redundant INFINIBAND kconfig dependencies" 2018-05-28 10:40:16 -06:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
af_rds.c rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
bind.c rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
cong.c rds: Changing IP address internal representation to struct in6_addr 2018-07-23 21:17:44 -07:00
connection.c rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
ib.c rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
ib.h rds: Changing IP address internal representation to struct in6_addr 2018-07-23 21:17:44 -07:00
ib_cm.c rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
ib_fmr.c net/rds/ib_fmr.c: use kmalloc_array_node() 2017-11-15 18:21:02 -08:00
ib_frmr.c RDS: IB: split the mr registration and invalidation path 2017-01-02 14:02:47 -08:00
ib_mr.h rds: ib: add the static type to the function 2017-03-13 23:20:05 -07:00
ib_rdma.c rds: Changing IP address internal representation to struct in6_addr 2018-07-23 21:17:44 -07:00
ib_recv.c rds: Changing IP address internal representation to struct in6_addr 2018-07-23 21:17:44 -07:00
ib_ring.c RDS/IW+IB: Set recv ring low water mark to 1/2 full. 2009-04-09 17:21:14 -07:00
ib_send.c rds: Changing IP address internal representation to struct in6_addr 2018-07-23 21:17:44 -07:00
ib_stats.c RDS: IB: add few useful cache stasts 2017-01-02 14:02:51 -08:00
ib_sysctl.c net: Convert uses of typedef ctl_table to struct ctl_table 2013-06-13 02:36:09 -07:00
info.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
info.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
loop.c rds: Changing IP address internal representation to struct in6_addr 2018-07-23 21:17:44 -07:00
loop.h rds: clean up loopback rds_connections on netns deletion 2018-06-27 10:11:03 +09:00
message.c rds: remove redundant variable 'sg_off' 2018-03-12 11:12:38 -04:00
page.c rds: remove dead code 2016-12-26 21:35:39 -05:00
rdma.c rds: Changing IP address internal representation to struct in6_addr 2018-07-23 21:17:44 -07:00
rdma_transport.c rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
rdma_transport.h rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
rds.h rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
rds_single_path.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
recv.c rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
send.c rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
stats.c net/rds: zero last byte for strncpy 2013-03-08 00:35:44 -05:00
sysctl.c net: rds: fix coding style issues 2016-06-18 21:34:09 -07:00
tcp.c rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
tcp.h rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
tcp_connect.c rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
tcp_listen.c rds: Enable RDS IPv6 support 2018-07-23 21:17:44 -07:00
tcp_recv.c rds: Changing IP address internal representation to struct in6_addr 2018-07-23 21:17:44 -07:00
tcp_send.c rds: Changing IP address internal representation to struct in6_addr 2018-07-23 21:17:44 -07:00
tcp_stats.c net: rds: fix const array syntax 2011-07-01 16:16:19 -07:00
threads.c rds: Changing IP address internal representation to struct in6_addr 2018-07-23 21:17:44 -07:00
transport.c rds: Changing IP address internal representation to struct in6_addr 2018-07-23 21:17:44 -07:00