linux/net/rds
Sowmini Varadhan 10beea7d74 rds: tcp: Set linger when rejecting an incoming conn in rds_tcp_accept_one
Each time we get an incoming SYN to the RDS_TCP_PORT, the TCP
layer accepts the connection and then the rds_tcp_accept_one()
callback is invoked to process the incoming connection.

rds_tcp_accept_one() may reject the incoming syn for a number of
reasons, e.g., commit 1a0e100fb2 ("RDS: TCP: Force every connection
to be initiated by numerically smaller IP address"), or because
we are getting spammed by a malicious node that is triggering
a flood of connection attempts to RDS_TCP_PORT. If the incoming
syn is rejected, no data would have been sent on the TCP socket,
and we do not need to be in TIME_WAIT state, so we set linger on
the TCP socket before closing, thereby closing the socket efficiently
with a RST.

Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Tested-by: Imanti Mendez <imanti.mendez@oracle.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-06-16 12:45:15 -04:00
..
Kconfig RDS: Drop stale iWARP RDMA transport 2016-03-02 14:13:17 -05:00
Makefile rds: debug messages are enabled by default 2016-10-29 15:55:57 -04:00
af_rds.c RDS: validate the requested traces user input against max supported 2017-01-06 22:14:26 -05:00
bind.c RDS: log the address on bind failure 2017-01-02 14:02:39 -08:00
cong.c RDS: split out connection specific state from rds_connection to rds_conn_path 2016-06-14 23:50:41 -07:00
connection.c rds: tcp: remove cp_outgoing 2017-06-16 12:45:14 -04:00
ib.c rds: remove unnecessary returned value check 2017-03-03 09:51:22 -08:00
ib.h This is a tree wide change and has been kept separate for that reason. 2017-02-25 13:45:43 -08:00
ib_cm.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-03-15 11:59:10 -07:00
ib_fmr.c rds: ib: unmap the scatter/gather list when error 2017-03-13 23:20:05 -07: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: split out connection specific state from rds_connection to rds_conn_path 2016-06-14 23:50:41 -07:00
ib_recv.c RDS: add receive message trace used by application 2017-01-02 14:02:59 -08:00
ib_ring.c
ib_send.c rds:Remove unnecessary ib_ring unalloc 2017-02-17 15:19:51 -05: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 rds: fix an integer overflow test in rds_info_getsockopt() 2015-08-03 15:20:16 -07:00
info.h
loop.c RDS: TCP: Hooks to set up a single connection path 2016-07-01 16:45:17 -04:00
loop.h
message.c RDS: TCP: Track peer's connection generation number 2016-11-17 13:35:18 -05:00
page.c rds: remove dead code 2016-12-26 21:35:39 -05:00
rdma.c RDS: make message size limit compliant with spec 2017-01-02 14:02:57 -08:00
rdma_transport.c RDS: RDMA: start rdma listening after init 2017-01-02 14:02:45 -08:00
rdma_transport.h RDS: Drop stale iWARP RDMA transport 2016-03-02 14:13:17 -05:00
rds.h rds: tcp: various endian-ness fixes 2017-06-16 12:45:15 -04:00
rds_single_path.h RDS: split out connection specific state from rds_connection to rds_conn_path 2016-06-14 23:50:41 -07:00
recv.c rds: tcp: various endian-ness fixes 2017-06-16 12:45:15 -04:00
send.c rds: tcp: various endian-ness fixes 2017-06-16 12:45:15 -04: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 Merge branches 'uaccess.alpha', 'uaccess.arc', 'uaccess.arm', 'uaccess.arm64', 'uaccess.avr32', 'uaccess.bfin', 'uaccess.c6x', 'uaccess.cris', 'uaccess.frv', 'uaccess.h8300', 'uaccess.hexagon', 'uaccess.ia64', 'uaccess.m32r', 'uaccess.m68k', 'uaccess.metag', 'uaccess.microblaze', 'uaccess.mips', 'uaccess.mn10300', 'uaccess.nios2', 'uaccess.openrisc', 'uaccess.parisc', 'uaccess.powerpc', 'uaccess.s390', 'uaccess.score', 'uaccess.sh', 'uaccess.sparc', 'uaccess.tile', 'uaccess.um', 'uaccess.unicore32', 'uaccess.x86' and 'uaccess.xtensa' into work.uaccess 2017-04-26 12:06:59 -04:00
tcp.h rds: tcp: Sequence teardown of listen and acceptor sockets to avoid races 2017-03-07 14:09:59 -08:00
tcp_connect.c rds: tcp: various endian-ness fixes 2017-06-16 12:45:15 -04:00
tcp_listen.c rds: tcp: Set linger when rejecting an incoming conn in rds_tcp_accept_one 2017-06-16 12:45:15 -04:00
tcp_recv.c RDS: add receive message trace used by application 2017-01-02 14:02:59 -08:00
tcp_send.c don't open-code kernel_setsockopt() 2017-04-06 02:09:23 -04:00
tcp_stats.c net: rds: fix const array syntax 2011-07-01 16:16:19 -07:00
threads.c rds: tcp: various endian-ness fixes 2017-06-16 12:45:15 -04:00
transport.c rds: remove unnecessary returned value check 2017-03-03 09:51:22 -08:00