]> git.baikalelectronics.ru Git - kernel.git/commit
rds: tcp: send handshake ping-probe from passive endpoint
authorSowmini Varadhan <sowmini.varadhan@oracle.com>
Wed, 21 Jun 2017 20:40:12 +0000 (13:40 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 22 Jun 2017 15:34:04 +0000 (11:34 -0400)
commit8969f51eb04261761c2de3be651eab20b0c92f02
treedc21d77a3eed374fb5be93efaa1c0b2ebd2d81b9
parentcfbf1622db9b949f3260a9a6c54df270b8c67787
rds: tcp: send handshake ping-probe from passive endpoint

The RDS handshake ping probe added by commit d3d3f36f814e
("RDS: TCP: Enable multipath RDS for TCP") is sent from rds_sendmsg()
before the first data packet is sent to a peer. If the conversation
is not bidirectional  (i.e., one side is always passive and never
invokes rds_sendmsg()) and the passive side restarts its rds_tcp
module, a new HS ping probe needs to be sent, so that the number
of paths can be re-established.

This patch achieves that by sending a HS ping probe from
rds_tcp_accept_one() when c_npaths is 0 (i.e., we have not done
a handshake probe with this peer yet).

Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Tested-by: Jenny Xu <jenny.x.xu@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/rds/rds.h
net/rds/recv.c
net/rds/send.c
net/rds/tcp_listen.c